ÇÙ½É ¸Þ¼Òµå
define(HASH)
¸Þ¼Òµå define()Àº ÅÛÇø´ ÆÄÀÏÀ» À̸§(º¸Åë ªÀº À̸§)À¸·Î ¿¬°ü½ÃŲ´Ù. ¿¹:
my $tpl = new FastTemplate();
$tpl->define( main => "main.tpl",
footer => "footer.tpl",
);
»õ·Î¿î À̸§Àº ÅÛÇø´À» ÂüÁ¶Çϴµ¥ »ç¿ëµÈ´Ù. ÆÄÀϸíÀº define() ÀÌ¿ÖÀÇ ¾î¶°ÇÑ °÷¿¡¼µµ ³ªÅ¸³ªÁö ¾Ê¾Æ¾ß ÇÑ´Ù.
(ÁÖÀÇ: ÀÌ °ÍÀº ¹Ýµå½Ã ÇÊ¿äÇÑ ÀýÂ÷ÀÌ´Ù! ÀÌ°ÍÀº À§ÀÇ ¿¹¿Í°°ÀÌ ÂªÀº ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§¿¡´Â »ó´çÈ÷ Â¥Áõ³ª´Â ÀÛ¾÷ó·³ ¿©°ÜÁú °ÍÀÌ´Ù. ±×·¯³ª ¾ÆÁÖ ¸¹Àº ¼öÀÇ ÅÛÇø´À¸·Î ÀÛ¾÷À» ÇÏ´Â °æ¿ì ÆÄÀÏÀ̸§°ú´Â µ¶¸³ÀûÀÎ À̸§À¸·Î ÅÛÇø´À» ÂüÁ¶ÇÏ´Â °ÍÀº ¾ÆÁÖ À¯¿ëÇÑ ¹æ¹ýÀÌ´Ù.
ÆÁ: define()Àº »ç½Ç ÅÛÇø´À» ÀÐÁö¾ÊÀ¸¹Ç·Î Çѹø È£ÃâÇÒ ¶§ ¸ðµç ÅÛÇø´À» Á¤ÀÇÇÏ´Â °ÍÀÌ ÈξÀ È¿°úÀûÀÌ´Ù.
define_nofile(HASH) º°Äª: define_raw(HASH)
¶§¶§·Î °¢°¢ÀÇ ÅÛÇø´À» º°µµÀÇ ÆÄÀÏ·Î »ý¼ºÇÏÁö¾Ê´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÒ ¶§°¡ ÀÖ´Ù. define_nofile()·Î ÀÌ °ÍÀ» ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦µé¾î Ç׸ñÀ» µÎ²¨¿î ±Û¾¾·Î Ç¥ÇöÇÏ´Â »õ·Î¿î ¼Ó¼ºÀ» ¸¸µé±âÀ§ÇØ ´ÙÀ½ ¿¹Ã³·³ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
my $tpl = new FastTemplate();
$tpl->define_nofile( new => '<b>$ITEM_NAME</b> <BR>',
old => '$ITEM_NAME <BR>');
if ($new)
{
$tpl->parse($ITEM => "new");
}
else
{
$tpl->parse($ITEM => "old");
}
¹°·Ð ÇÁ·Î±×·¡¸Ó°¡ »õ·Î¿î Ç׸ñÀ» ¾î¶»°Ô Ãâ·ÂÇÏ´ÂÁö¸¦ °»½ÅÇؾßÇÑ´Ù. ¹Ý¸é¿¡ ÀÌ °ÍÀÌ ÅÛÇø´ ³»¿¡ ÀÖ´Ù¸é ´Ù¸¥ ´©±º°¡¿¡°Ô ¸º±æ ¼öµµ ÀÖ´Ù.
define_nofile(HASH REF) º°Äª: define_raw(HASH REF)
½ÇÁ¦ Çؽ¬¸¦ Àü´ÞÇÏ´Â °Íº¸´Ù Àμö¸¦ Àü´ÞÇÏ´Â È¿°úÀûÀÎ ¹æ¹ýÀº Çؽ¬ÀÇ ·¹ÆÛ·±½º¸¦ Àü´ÞÇÏ´Â °ÍÀÌ´Ù.
assign(HASH)
assign()´Â º¯¼öÀÇ °ªÀ» ÇÒ´çÇÑ´Ù. ÅÛÇø´¿¡ º¯¼ö¸¦ »ðÀÔÇϱâÀ§ÇØ ¹Ýµå½Ã ÇÒ´çÇØ¾ß ÇÑ´Ù. µÎ°¡Áö Çü½ÄÀÌ °¡´ÉÇÏÁö¸¸ µÎ ¹æ¹ýÀº ¸î¸î Áß¿äÇÑ Â÷ÀÌÁ¡À» °®´Â´Ù. °£´ÜÇÑ Çü½ÄÀº Çؽ¬¸¦ »ç¿ëÇÏ´Â °ÍÀ¸·Î ¸ðµç Å°/°ª ½ÖÀ» FastTemplate³»ÀÇ Çؽ¬·Î º¹»çÇÑ´Ù. FastTemplate³»¿¡´Â ÇϳªÀÇ Çؽ¬¸¸ Á¸ÀçÇϸç, µû¶ó¼ µ¿ÀÏÇÑ Å°¿¡ ´Ù¸¥°ªÀ» ÇÒ´çÇÏ¸é ¸ÕÀú ÇÒ´çµÈ °ªÀº »ç¶óÁø´Ù.
¿¹
$tpl->assign(TITLE => "king kong");
$tpl->assign(TITLE => "godzilla"); ## "king kong"Àº »ç¶óÁø´Ù
assign(HASH REF)
°ªÀ» Àü´ÞÇÏ´Â ÈξÀ È¿°úÀûÀÎ ¹æ¹ýÀº Çؽ¬ÀÇ ·¹ÆÛ·±½º¸¦ Àü´ÞÇÏ´Â °ÍÀÌ´Ù(µ¥ÀÌŸ º£À̽º·ÎºÎÅÍ Çؽ¬³ª Çؽ¬ ·¹ÆÛ·±½º¸¦ ±¸ÇÑ °æ¿ì ƯÈ÷ À¯¿ëÇÏ´Ù). Çؽ¬ ·¹ÆÛ·±½º¸¦ Àü´ÞÇÔÀ¸·Î¼ µ¥ÀÌŸ¸¦ º¹»çÇÏÁö´Â ¾ÊÁö¸¸ ¹è¿³»ÀÇ ·¹ÆÛ·±½º´Â À¯ÁöµÈ´Ù. Çؼ®ÇÏ´Â µ¿¾È ÁÖ FastTemplate Çؽ¬¿¡¼ º¯¼ö °ªÀ» ãÀ» ¼ö ¾ø´Â °æ¿ì Çؽ¬ ·¹ÆÛ·±½ºÀÇ ¹è¿À» Á¶»çÇÑ´Ù. °ªÀÌ ¹ß°ßµÇÀÚ¸¶ÀÚ ÁßÁöµÈ´Ù. ´õÀÌ»ó ÇÊ¿ä°¡ ¾ø´Â °æ¿ì Çؽ¬ ·¹ÆÛ·±½º¸¦ ²À Á¦°ÅÇØ¾ß ÇÑ´Ù.
¿¹
my %foo = ("TITLE" => "king kong");
my %bar = ("TITLE" => "godzilla");
$tpl->assign(\%foo); ## TITLEÀº "king kong"À¸·Î Çؼ®µÈ´Ù.
$tpl->clear_href(1); ## Çؽ¬ ·¹ÆÛ·±½º »èÁ¦(\%foo)
$tpl->assign(\%bar); ## TITLEÀº "godzilla"·Î Çؼ®µÈ´Ù.
$tpl->clear_href(); ## ¸ðµç Çؽ¬ ·¹ÆÛ·±½º »èÁ¦
$tpl->assign(\%foo); ## TITLEÀº "king kong"À¸·Î Çؼ®µÈ´Ù.
$tpl->assign(\%bar); ## TITLEÀº ¾ÆÁ÷µµ"king kong"À¸·Î Çؼ®µÈ´Ù.
parse(HASH)
parse ÇÔ¼ö´Â FastTemplateÀÇ ÁÖ ÇÔ¼öÀÌ´Ù. ÀÌ °ÍÀº Å°°¡ Ÿ°Ù ÅÛÇø´À̸ç, °ªÀÌ ¼Ò½º ÅÛÇø´ÀÎ Çؽ¬¸¦ Çã¿ëÇÑ´Ù. ÀÌ Çؽ¬¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¼¼°¡Áö Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
$tpl->parse(MAIN => "main"); ## Á¤»ó
$tpl->parse(MAIN => ["table", "main"]); ## °áÇÕ
$tpl->parse(MAIN => ".row"); ## Ãß°¡
Á¤»óÀûÀÎ Çü½ÄÀ» »ç¿ëÇϸé À̸§ÀÌ "main"ÀÎ ÅÛÇø´ÀÌ ÀÐÇôÁø´Ù(ÀÌ¹Ì ÀÐÁö¾ÊÀº °æ¿ì). ¸ðµç º¯¼ö°¡ »ðÀÔµÇ¸ç ±× °á°ú´Â MAINÀ̶ó´Â °ªÀ¸·Î ÀúÀåµÈ´Ù. º¯¼ö '$MAIN'ÀÌ ÀÌ ÈÄÀÇ ÅÛÇø´¿¡¼ »ç¿ëµÇ¸é Çؼ®µÈ "main" ÅÛÇø´ÀÇ °ªÀ¸·Î »ðÀ﵃ °ÍÀÌ´Ù. ÀÌ°ÍÀ¸·Î ½±°Ô ÅÛÇø´³»¿¡ ÅÛÇø´À» µÎ´Â °ÍÀÌ °¡´ÉÇØÁø´Ù.
°áÇÕ ½ºÅ¸ÀÏÀº ½±°Ô ÅÛÇø´¾È¿¡ ÅÛÇø´À» µÎ±âÀ§ÇØ °í¾ÈµÇ¾ú´Ù. ´ÙÀ½ ¿¹´Â µ¿ÀÏÇÑ °á°ú¸¦ ¾ò°ÔµÈ´Ù.
$tpl->parse(MAIN => "table");
$tpl->parse(MAIN => "main");
## Àº ´ÙÀ½ Ç¥Çö°ú µ¿ÀÏÇÏ´Ù:
$tpl->parse(MAIN => ["table", "main"]); ## ÀÌ ÆûÀº ÇÔ¼ö È£ÃâȽ¼ö¸¦ ÁÙ¿©ÁØ´Ù
## (±×¸®°í Äڵ带 º¸´Ù ºÐ¸íÇÏ°Ô ÇØÁØ´Ù)
°áÇÕÇü½ÄÀ» »ç¿ëÇÒ ¶§ ³ªÁß¿¡ ³ª¿À´Â °¢°¢ÀÇ ÅÛÇø´(ÀÌ°æ¿ì 'main')Àº °á°ú¸¦ Çؼ®ÇÑ º¯¼ö('$MAIN')¸¦ Æ÷ÇÔÇؾßÇÑ´Ù´Â °ÍÀ» ÁÖÀÇÇϱ⠹ٶõ´Ù. À§ÀÇ ¿¹¿¡¼ 'main'Àº 'table'À» Çؼ®ÇÑ °á°ú¸¦ ÀúÀåÇÑ º¯¼ö '$MAIN'À» Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ¸¸¾à 'main'ÀÌ º¯¼ö '$MAIN'À» Æ÷ÇÔÇÏÁö ¾Ê´Â °æ¿ì, 'table'À» Çؼ®ÇÑ °á°ú´Â »ç¶óÁú ¼öµµ ÀÖ´Ù.
Ãß°¡ Çü½ÄÀº ÀÏÁ¾ÀÇ ¹ÌºÀÃ¥À¸·Î Çؼ®µÈ °á°ú¸¦ Ÿ°Ùº¯¼ö¿¡ Ãß°¡ÇÒ ¶§ »ç¿ëµÈ´Ù. ÀÌ°ÍÀº ÇàÀÇ ¼ö¸¦ µ¿ÀûÀ¸·Î °»½ÅÇؾßÇϴ ǥ¸¦ ¸¸µé¶§(µ¥ÀÌŸ º£À̽º¿¡ ÁúÀÇÇÑ °á°ú¸¦ Ç¥·Î ¸¸µé¶§) °¡Àå À¯¿ëÇÏ´Ù.
strict()
strict()ÀÌ 'on'(±âº»°ª)À̸é ÅÛÇø´À» Çؼ®ÇÏ´Â µ¿¾È ¹ß°ßµÇ´Â ¸ðµç º¯¼öÁß Çؼ®µÇÁö¾ÊÀº º¯¼ö´Â Ç¥ÁØ ¿À·ù·Î °æ°í Çü½ÄÀ¸·Î Ãâ·ÂµÈ´Ù.
¿¹
[CGI::FastTemplate] Warning: no value found for variable: SOME_VARIABLE
1.04 ÀÌÈĹöÀü¿¡¼ »õ·Ó°Ô ¹Ù²ï »çÇ×À¸·Î ÀÌ·¯ÇÑ º¯¼ö´Â Ãâ·ÂµÈ ¹®¼¿¡ ³²°ÔµÈ´Ù. ÀÌ °ÍÀº µÎ°¡Áö ÀÌÀ¯¶§¹®ÀÌ´Ù. ù¹ø°´Â ´Ü°èÀûÀ¸·Î Çؼ®À» ¼öÇàÇϱâÀ§Çؼ ÀÌ´Ù(Áï, ´ÙÁßÀ¸·Î ÅÛÇø´À» Àü´ÞÇÏ´Â °æ¿ì). µÎ¹ø°´Â Çؼ®µÈ °á°ú³»¿¡ À̵éÀ» µÒÀ¸·Î¼ Á¤ÀǵÇÁö ¾ÊÀº º¯¼ö¸¦ È®ÀÎÇϱ⠽±µµ·ÏÇϱâÀ§Çؼ ÀÌ´Ù. FastTemplateÀÇ ÃֽŹöÀüÀ» »ç¿ëÇϸç¼, Á¤ÀǵÇÁö ¾ÊÀº º¯¼ö¸¦ °ø¹éÀ¸·Î ´ëÄ¡ÇÏ´Â ¿¹Àü ±â´ÉÀ» »ç¿ëÇÏ·Á¸é no_strict()À» º¸±â¹Ù¶õ´Ù.
ÁÖÀÇ: 1.07 ¹öÀüÀº µÎ°¡Áö Çü½ÄÀÇ º¯¼ö¸¦ Áö¿øÇÑ´Ù. µû¶ó¼ $VAR°ú ${VAR}´Â µ¿ÀÏÇÑ º¯¼öÀÌ´Ù. ±×·¯³ª strict()À» »ç¿ëÇϸé, ${VAR}ÀÇ Çü½ÄÀ» °°´Â Çؼ®µÇÁö ¾Ê´Â º¯¼ö´Â $VAR·Î Ãâ·ÂµÈ´Ù. Áï, ${VAR}¿¡ ¾î¶°ÇÑ °ªµµ ÇÒ´çµÇÁö ¾ÊÀº °æ¿ì, $VAR·Î¼ Ãâ·ÂµÈ´Ù´Â ¶æÀÌ´Ù. ÀÌ °ÍÀº ´Ù¼Ò ¸ð¼øÀûÀÌ´Ù - ÀÌ»óÀûÀÎ °æ¿ì Çؼ®µÇÁö¾ÊÀº º¯¼ö´Â º¯°æµÇÁö ¾Ê´Â ä·Î ³²¾Æ¾ß ÇÑ´Ù.
ÁÖÀÇ: STDERR Ãâ·ÂÀº À¥ ¼¹ö¿¡ÀÇÇØ ±â·ÏµÈ´Ù. µû¶ó¼ Ãâ·ÂÀ» È®ÀÎÇϱâÀ§ÇØ ¿À·ù ·Î±×ÆÄÀÏÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
¿¹
tail -f /etc/httpd/logs/error_log
no_strict()
Çؼ®µÇÁö ¾ÊÀº ÅÛÇø´ º¯¼ö¿¡´ëÇÑ °æ°í ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏÁö ¾Ê´Â´Ù. 1.04 ¹öÀü¿¡¼ ó·³ no_strict()À» È£ÃâÇÔÀ¸·Î¼ Çؼ®µÇÁö¾ÊÀº º¯¼ö¸¦ °ø¹éÀ¸·Î ´ëÄ¡ÇÒ ¼ö ÀÖ´Ù. ±âº»ÀûÀ¸·Î FastTemplateÀÇ ¸ðµç »çº»Àº strict()À» È£ÃâÇÑ °Íó·³ µ¿ÀÛÇÑ´Ù. ¶ÇÇÑ no_strict()Àº °¢°¢ÀÇ CGI::FastTemplate »çº»¿¡´ëÇØ ¼³Á¤µÇ¾î¾ß ÇÑ´Ù.
¿¹:
CGI::FastTemplate::no_strict; ## no
my $tpl = CGI::FastTemplate;
$tpl->no_strict; ## yes
print(SCALAR)
print() ¸Þ¼Òµå´Â À̸§À» °®´Â º¯¼öÀÇ ³»¿ëÀ» Ãâ·ÂÇÑ´Ù. ¾î¶°ÇÑ º¯¼öµµ ÁöÁ¤ÇÏÁö¾ÊÀ¸¸é È£Ãâ¿¡ »ç¿ëµÈ ¸¶Áö¸· º¯¼ö¸¦ Ãâ·ÂÇÑ´Ù. ÀÌ °ÍÀº ¾ÆÁÖ Å¸´çÇÑ °Í °°´Ù.
¿¹
$tpl->parse(MAIN => "main");
$tpl->print(); ## MAINÀÇ °ªÀ» Ãâ·ÂÇÑ´Ù
$tpl->print("MAIN"); ## À§¿Í µ¿ÀÏ
ÀÌ ¸Þ¼Òµå´Â ÀÏ°ü¼ºÀÌ Á¦°øµÈ´Ù.
Ç¥ÁØ Ãâ·Â ÀÌ¿ÜÀÇ °÷(¿¹, ¼ÒÄÏ, ÆÄÀÏÇÚµé)¿¡ Ãâ·ÂÇÒ ÇÊ¿ä°¡ ÀÖ´Ù¸é fetch()¸¦ º¸±â¹Ù¶õ´Ù.