Áö½ÄÀº Çϴ÷Πºñ»óÇÏ´Â ³¯°³¿Í °°´Ù

Àüü |  ¸®´ª½º (139)   À©µµ¿ì (34)   ÇØÅ·/º¸¾È (81)   PHP (12)   PERL (82)   ½© (24)   ±â Ÿ (28)   IT839 (14)   ¿À¶óŬ (8)   ¾ÆÆÄÄ¡ (49) 

 hakkoo ( 2004-06-14 14:43:08, Hit : 3214
 ¡Ú ¹®ÀÚ¿­ ó¸®/°Ë»ö/ġȯ ±â¹ý

--------------------------------------------------------------------------------

VIII. ¹®ÀÚ¿­ ó¸®/°Ë»ö/ġȯ ±â¹ý
PERLÀÇ °¡Àå Å« °­Á¡ÀÌ ¹®ÀÚ¿­ 󸮿¡ À־ ¸Å¿ì À¯¿¬ÇÏ°í ´Ù¾çÇÑ ±â¹ýµéÀ» Á¦°øÇÑ´Ù´Â Á¡ÀÌ´Ù. ±×¸®°í, Á¤±Ô ¾î¹ýÀ» ÀÌ¿ëÇÑ °­·ÂÇÑ °Ë»ö/ġȯ ±â´ÉÀº ±× ¾î¶°ÇÑ ¾ð¾î¿¡¼­µµ ã¾Æº¼ ¼ö ¾ø´Â ¾öû³­ ±â´ÉÀÌ´Ù. PERLÀÌ WebÀÇ °­ÀÚ°¡ µÈ °Íµµ ¹Ù·Î ÀÌ°Í ¶§¹®ÀÌ´Ù.
1. ¹®ÀÚ¿­ ó¸®

C ¾ð¾î·Î CGI¸¦ ÀÛ¼ºÇØ º¸½Å ºÐµéÀº ¹®ÀÚ¿­ 󸮰¡ ¸Å¿ì °íµÇ´Ù´Â °ÍÀ» ´À²¼À» °ÍÀÌ´Ù. PERL¿¡¼­´Â ÀÏ´Ü º¯¼ö TypecastingÀÌ ¾ø´Ù´Â Á¡¿¡¼­ ½Ã°£À» ¹ú ¼ö ÀÖ´Ù. ±×¸®°í ´ÙÀ½°ú °°Àº À¯¿ëÇÑ ÇÔ¼öµéÀÌ ÇÁ·Î±×·¡¹Ö¿¡ µµ¿òÀ» ÁÙ °ÍÀÌ´Ù.

(1) printf ÇÔ¼ö

ÀÌ ÇÔ¼ö´Â C¾ð¾î¿¡¼­µµ µîÀåÇÑ´Ù. »ç¿ëÇÏ´Â ¹ýÀº C¿Í µ¿ÀÏÇÏ´Ù.

¿¹) printf("¹ÚÂùÈ£ÀÇ ¼Ò¼ÓÆÀÀº %sÀ̰í,
             µî¹øÈ£´Â %dÀÌ´Ù.n", "DODGERS", 61);

ÀÌ ÇÔ¼öÀÇ ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.
°á°ú) ¹ÚÂùÈ£ÀÇ ¼Ò¼ÓÆÀÀº DODGERSÀ̰í, µî¹øÈ£´Â 61ÀÌ´Ù.

printf ÇÔ¼ö¿¡¼­ ƯÁ¤ º¯¼ö ¹× »ó¼öÀÇ Ãâ·Â Æ÷¸ËÀ» Á¤ÇØÁÖ±â À§ÇØ »ç¿ëÇÏ´Â Æ÷¸Ë ¹®ÀÚ´Â ´ÙÀ½°ú °°´Ù.

Æ÷¸Ë ¹®ÀÚ ¼³¸í
%d ¼ýÀÚ(10Áø¼ö)
%o ¼ýÀÚ(8Áø¼ö)
%x ¼ýÀÚ(16Áø¼ö)
%c ¹®ÀÚ(1 byte)
%s ¹®ÀÚ¿­
%f ºÎµ¿¼Ò¼ýÁ¡ ¼ýÀÚ

(2) sprintf ÇÔ¼ö

ÀÌ ÇÔ¼ö ¿ª½Ã C¿¡µµ ÀÖ´Â ÇÔ¼öÀÌ´Ù. sprintf´Â ƯÁ¤ º¯¼öÀÇ °ªÀ» ÀÏÁ¤ÇÑ Æ÷¸ËÀ» °®Ãß¾î º¯¼ö¿¡ ÇÒ´çÇØÁÖ´Â ¿ªÇÒÀ» ÇÏ´Â ÇÔ¼öÀÌ´Ù.

¿¹)
    $formatted = sprintf("$%.2fn", 123.45678);
    print $formatted;

°á°ú)

    $123.46

(3) ¹®ÀÚ¿­ °áÇÕ ¿¬»êÀÚ
¹®ÀÚ¿­ °áÇÕÀ» À§Çؼ­´Â µµÆ®(.) ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÑ´Ù.

¿¹1)
     $string_1 = "Chan ";
     $string_2 = "Ho Park";

     print $string_1.$string_2;

°á°ú1)

     Chan Ho Park


±×¸®°í ´ÙÀ½°ú °°Àº Ç¥ÇöÀÌ °¡´ÉÇÏ´Ù.
¿¹2)
     $string_1 = "Chan ";
     $string_1 .= "Ho Park";

     print $string_1;

°á°ú2)

     Chan Ho Park


(4) ºÎºÐ¹®ÀÚ¿­ ÃßÃâ ÇÔ¼ö - substr
substr ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ¹®ÀÚ¿­ÀÇ ÀϺκÐÀ» ÃßÃâÇÒ ¼ö ÀÖ´Ù.
¾Æ·¡ÀÇ ¿¹´Â "Chan Ho Park"À̶ó´Â ¹®ÀÚ¿­¿¡¼­ ºÎºÐ¹®ÀÚ¿­ "Park" À» ÃßÃâÇÏ´Â ¿¹ÀÌ´Ù.
¿¹Á¦ ¹®ÀÚ¿­À» ºÐ¼®ÇØ º¸¸é ´ÙÀ½°ú °°´Ù.

     C  = [0]
     h  = [1]
     a  = [2]
     n  = [3]
    ' ' = [4]
     H  = [5]
     o  = [6]
    ' ' = [7]
     P  = [8]
     a  = [9]
     r  = [10]
     k  = [11]

¹®ÀÚ¿­ÀÇ °¢ ¹®ÀÚ¿¡ ¹øÈ£¸¦ ºÙ¿´À» °æ¿ì À§¿Í °°´Ù. °á±¹, 'P' ÀÚÀÇ À§Ä¡´Â 8¹øÂ°°¡ µÇ¸ç, "Park"Àº ÃÑ 4 ¹®ÀÚ·Î ±¸¼ºµÇ¾î ÀÖÀ¸¹Ç·Î ¾Æ·¡ ¿¹Á¦¿Í °°ÀÌ Çϸé "Park"À» ÃßÃâÇÒ ¼ö ÀÖ´Ù.
¿¹)
    $sub_string = substr("Chan Ho Park", 8, 4);
    print $sub_string;

°á°ú)

    Park


(5) ¹®ÀÚ¿­ ±æÀÌ °è»ê ÇÔ¼ö - length
substr ÇÔ¼ö´Â ½ÇÁ¦·Î length ÇÔ¼ö¿Í ÇÔ²² »ç¿ëÇϸé È¿°ú°¡ ÀÖ´Ù. length ÇÔ¼ö´Â ÇØ´ç ¹®ÀÚ¿­ÀÇ ±æÀÌ, Áï byte ¼ö¸¦ °è»êÇÑ´Ù.

¿¹)
    $len = length("Chan Ho Park");
    print $len;

°á°ú)

    12


substr ÇÔ¼ö¿Í length ÇÔ¼ö¸¦ º´ÇàÇØ¼­ »ç¿ëÇÑ ¿¹ÀÌ´Ù.
ÀÌ ¿¹Á¦´Â ½ÇÁ¦·Î °Ô½ÃÆÇ ½ºÅ©¸³Æ®¿¡¼­ ¹ßÃéÇÑ °ÍÀ¸·Î, °Ô½ÃÆÇ ³»¿ëÀ» Á¶È¸ÇßÀ» °æ¿ì Á¶È¸¼ö¸¦ Çϳª Áõ°¡½ÃŰ´Â ±â´ÉÀ» ÇÑ´Ù.
open(WRITE_FILE, ">$basedir/$bulletin_index_file") ||
     die "Can't Open Bulletin File!n";
$search_str = "<!--access_count: $input{'id'}-->";
$str_len = length($search_str);
for($i=0;$i<=$SIZE;$i++) {
   $_ = $LINES[$i];
   if(/$search_str/) {
        $access_count = substr($_, $str_len);
        $access_count++;
        print WRITE_FILE "$search_str$access_countn";
   }
   else {
        print WRITE_FILE $_;
   }
}
close(WRITE_FILE);


(6) °³Çà ¹®ÀÚ Á¦°Å ÇÔ¼ö - chop
chop ÇÔ¼ö´Â ¸Å¿ì Áß¿äÇÑ ±â´ÉÀ» ÇÑ´Ù. ¸¸ÀÏ ´ÙÀ½°ú °°Àº ÆÄÀÏÀÌ ÀÖ´Ù°í ÇÏÀÚ.


    I am Chan Ho Park.
    I am the ace pitcher of L.A. Dodgers.


±×·±µ¥, ½ÇÁ¦ ÀÌ ÆÄÀÏÀº °³Çà(Line Feed - "n") ¹®ÀÚ¸¦ ´ã°í ÀÖ´Ù. °á±¹, ÀÌ ÆÄÀÏÀº ´ÙÀ½°ú °°´Ù.

    I am Chan Ho Park.n
    I am the ace pitcher of L.A. Dodgers.n


½ÇÁ¦·Î ÀÌ ÆÄÀÏÀ» ¶óÀÎ ´ÜÀ§·Î Àо ó¸®Çϱâ À§Çؼ­´Â ¹Ýµå½Ã ¶óÀÎ ³¡ÀÇ °³Çà ¹®ÀÚ¸¦ Àß¶ó ¹ö·Á¾ß ÇÑ´Ù. ¸¸¾à ÀÌ ÆÄÀÏÀÇ Ã¹¹øÂ° ¶óÀÎÀ» º¯¼ö¿¡ ÀúÀåÇÑ ÈÄ »ç¿ëÇÏ·Á¸é chop ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© °³Çà ¹®ÀÚ¸¦ Á¦°ÅÇØ¾ß ÇÑ´Ù.

   $line = "I am Chan Ho Park.n";
   chop ($line);



--------------------------------------------------------------------------------
2. ¹®ÀÚ¿­ °Ë»ö ¹× ġȯ (Selena SolÀÇ Àú¼­¿¡¼­ ºÎºÐ Àοë)
ÀÌÁ¦ºÎÅÍ´Â UNIXÀÇ Á¤±Ô ¾î¹ýÀ» ÀÌ¿ëÇÏ¿© ƯÁ¤ ¹®ÀÚ¿­ÀÇ °Ë»ö ¹× ġȯ ±â¹ýÀ» ¾Ë¾Æº¸ÀÚ.

(1) ÆÐÅÏ ¸ÅĪ(Pattern Matching)ÀÇ ±âº»

vi ÆíÁý±â¸¦ ½á º¸½Å ºÐµéÀº ¾î¶² ¹®ÀÚ¿­À» ã¾Æ º¼ ¶§ Esc ۸¦ ´©¸£°í "/"¸¦ ´©¸¥ ÈÄ Ã£À¸·Á´Â ¹®ÀÚ¿­À» ÀÔ·ÂÇÑ ÈÄ ¿£Å͸¦ ´­·¯ ¹®ÀÚ¿­ °Ë»öÀ» ÇØ º» ÀÏÀÌ ÀÖÀ» °ÍÀÌ´Ù.
PERL¿¡¼­´Â ÇØ´ç ¹®ÀÚ¿­¿¡¼­ ãÀ¸·Á´Â ÆÐÅÏÀ» /[pattern]/¾È¿¡ ÁöÁ¤ÇØ ³õ°í for loopµîÀ» ÀÌ¿ëÇÏ¿© °Ë»öÀ» ½ÃµµÇÑ´Ù. ´ÙÀ½Àº ¾î¶² ¹è¿­¿¡ "DODGERS" ¶ó´Â °ªÀÌ ÀÖ´Â ¹è¿­¿ä¼Ò°¡ Àִ°¡¸¦ ã¾Æº¸´Â ÇÁ·Î±×·¥ÀÌ´Ù.

   $find_count = 0;

   foreach $array (@myarray) {
       if($array =~ /DODGERS/) {
           $find_count++;
       }
   }

   print "$find_count Match(es)";


À§¿¡¼­ º¸¾ÒµíÀÌ, º¯¼ö¿Í ÆÐÅÏ ¸ÅĪÀ» ½Ãų °æ¿ì¿¡´Â ¹Ýµå½Ã "=~" ¿¬»êÀÚ¸¦ ÀÌ¿ëÇØ¼­ ºñ±³ÇØ¾ß ÇÑ´Ù. ¾ÕÀ¸·Î ÀÌ·¯ÇÑ ½ºÅ¸ÀÏÀÇ ¿¹Á¦¸¦ ÀÚÁÖ º¸°Ô µÉ °ÍÀÌ´Ù. ¸Å¿ì Áß¿äÇÑ Ç¥ÇöÀÌ´Ï ¿Ü¿ö(?) µÑ °Í.
±×¸®°í, ´ë°ýÈ£([ ])¸¦ ÀÌ¿ëÇÏ¿© Àüü ¹®ÀÚ Å¬·¡½º(´ë°ýÈ£ ³»¿¡ ÀÖ´Â ¹®ÀÚµéÀÇ ¸ðÀÓ)¸¦ ÀÏÄ¡ÇÏ°Ô ÇÒ ¼ö ÀÖ´Ù.
¿¹¸¦ µé¾î ¦¼ö·Î ³ª¿­µÈ ƯÁ¤ ¼ýÀÚ Çϳª¿Í ÀÏÄ¡ÇÏ°Ô ÇÏ·Á¸é ´ÙÀ½°ú °°Àº Ç¥ÇöÀ» ¾´´Ù.

   /[02468]/

´ë½¬(-) ¸¦ ÀÌ¿ëÇØ¼­ ¹®ÀÚ Å¬·¡½ºÀÇ ¹üÀ§¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹´Â ¾ËÆÄºª Áß ¼Ò¹®ÀÚ Çϳª¿Í ÀÏÄ¡ÇÏ°Ô Çϴ ǥÇöÀÌ´Ù.
   /[a-z]/

ij·µ(^) ¹®ÀÚ¸¦ »ç¿ëÇϸé Ŭ·¡½º¿¡ ÀÖÁö ¾ÊÀº ¸ðµç ¹®ÀÚ¿Í ÀÏÄ¡ÇÏ°Ô ÇÒ ¼ö ÀÖ´Ù. ij·µ(^) ¹®ÀÚ°¡ Ŭ·¡½º ³»¿¡ ¾²ÀÌ°Ô µÇ¸é ÀÌ´Â ¸¶Ä¡ NOT ³í¸® ¿¬»êÀÚ¿Í °°Àº ±â´ÉÀ» ÇÏ°Ô µÈ´Ù.
´ÙÀ½ ¿¹´Â ¼ýÀÚ°¡ ¾Æ´Ñ ¹®ÀÚ Çϳª¿Í ÀÏÄ¡ÇÑ´Ù.
   /[^0-9]/

±×¸®°í, Ŭ·¡½ºµéÀ» ¸î°³¶óµµ ¸ð¾Æ¼­ ÇϳªÀÇ Å¬·¡½º·Î Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹´Â ¾ËÆÄºª ´ë¹®ÀÚ, ¾ËÆÄºª ¼Ò¹®ÀÚ, ¼ýÀÚ Çϳª¿Í ÀÏÄ¡ÇÏ°Ô ÇÑ´Ù.
   /[a-zA-Z0-9]/

ÇÑ °³ ÀÌ»óÀÇ ¹®ÀÚ¿Í ¸ÅÄ¡½Ãų °æ¿ì¿¡´Â Ŭ·¡½º Á¤ÀÇ¿¡ À̾ ÀÚ¸®¼ö¸¦ ½á ÁÖ¸é µÈ´Ù. ´ÙÀ½ ¿¹´Â ¾ËÆÄºª ´ë¹®ÀÚ/¼Ò¹®ÀÚ µÎ°³¿Í ÀÏÄ¡ÇÏ°Ô µÈ´Ù.
   /[a-zA-Z]{2}/

À§ÀÇ ¿¹´Â
   /[a-zA-Z][a-zA-Z]/

°ú °°Àº °á°úÀÌ´Ù.
´ÙÀ½Àº ¸ÅÄ¡ ¿¬»êÀÚ¿¡ ´ëÇØ¼­ ¾Ë¾Æº»´Ù. ¸ÅÄ¡ ¿¬»êÀÚ¸¦ ÀÌ¿ëÇØ¼­ º¹ÀâÇÑ ÆÐÅÏ ¸ÅÄ¡ ·çƾÀ» ¸¸µé ¼ö ÀÖ´Ù.


¸ÅÄ¡ ¿¬»êÀÚ ¼³¸í
n Newline
r Carriage Return
t ÅÇ ¹®ÀÚ
D ¼ýÀÚ°¡ ¾Æ´Ñ °Í[^0-9]
w ´Ü¾î ¹®ÀÚ[0-9a-zA-Z]
W ºñ´Ü¾î ¹®ÀÚ
s °ø¹é ¹®ÀÚ(t, n, r, f)
S ºñ°ø¹é ¹®ÀÚ
* 0°³ ÀÌ»ó ¹®ÀÚ ¹ß»ý½Ã
+ 1°³ ÀÌ»ó ¹®ÀÚ ¹ß»ý½Ã
. ƯÁ¤ ¹®ÀÚ
? 0°³ ȤÀº 1°³ÀÇ ¹®ÀÚ ¹ß»ý½Ã

¿¹¸¦ µé¾î ¸¶Ä§Ç¥(.) ¿¬»êÀڴ ƯÁ¤ ¹®ÀÚ¿Í ÀÏÄ¡Çϵµ·Ï ÇÏ´Â µ¥ »ç¿ëµÈ´Ù. µû¶ó¼­ "/eri./" ´Â "erik" °ú "eric", "eria" µî°ú ÀÏÄ¡ÇÑ´Ù. ±×·¯³ª "ericc"°ú´Â ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù.
º°Ç¥ ¿¬»êÀÚ(*)¸¦ »ç¿ëÇϸé 0°³ ÀÌ»óÀÇ ¹®ÀÚ°¡ ¹ß»ýÇÒ °æ¿ì ÀÏÄ¡ÇÑ´Ù. µû¶ó¼­ "/e*ric/" Àº "eeeeeeeeeric", "eric", "errrrric" µî°ú ÀÏÄ¡ÇÑ´Ù.
º°Ç¥ ¿¬»êÀÚ ´ë½Å ´õÇϱ⠿¬»êÀÚ(+)¸¦ »ç¿ëÇÏ¸é ¾à°£ ´Þ¶óÁø´Ù. "/e+ric/" Àº "eeeeeric", "erric", "edric" µî°ú´Â ÀÏÄ¡Çϳª "eric"°ú´Â ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù.
¹°À½Ç¥ ¿¬»êÀÚ(?)´Â 0°³ ȤÀº 1°³ÀÇ ¹®ÀÚ ¹ß»ý½Ã¿¡¸¸ ÀÏÄ¡ÇÑ´Ù. µû¶ó¼­ "/e?ric/" Àº "eeric", "erric", "eric" °ú ÀÏÄ¡Çϳª "eeeeeric" °ú´Â ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù.

(2) ÆÐÅÏ ¸ÅĪ Ȱ¿ëÇϱâ

´ÙÀ½ ¿¹Á¦´Â ÆÐÅÏ ¸ÅĪÀ» ÀÌ¿ëÇÏ¿© ÁöÁ¤µÈ ÆÐÅÏÀÇ ¹®ÀÚ¿­·ÎºÎÅÍ º¯¼ö¸¦ ²ôÁý¾î ³»´Â ¿¹Á¦ÀÌ´Ù.

ÀÌ ¿¹Á¦´Â ½ÇÁ¦·Î HTML ¹®¼­¸¦ ¿­¾î ¹®¼­ÀÇ ¶óÀÎÀ» ¹è¿­¿¡ ÇÒ´çÇÑ ÈÄ ±× ¹è¿­ ¿ä¼Ò Áß¿¡¼­ <title> ~ </title>ÅÂ±× ³»¿¡ ÀÖ´Â ¹®ÀÚ¿­À» º¯¼ö $fetched_title ¿¡ ÇÒ´çÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. ¹°·Ð, <title> ~ </title> ű״ ÇÑ ¶óÀÎ ¾È¿¡ ÀÖ¾î¾ß ÇÑ´Ù´Â ÀüÁ¦Á¶°ÇÀÌ µû¸£¸ç, ¸¸ÀÏ ±×·¸Áö ¾Ê´Ù¸é ½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇØ¼­ ÇÑ ¶óÀÎÀ» ¸¸µéµµ·Ï Á¶ÀÛÀ» ÇØ¾ß ÇÑ´Ù.

open(HTMLFILE, "index.htm") || die $!;
@lines = <HTMLFILE>;
close(HTMLFILE);

foreach $line (@lines) {
   if ($line =~ /<title>(.*)</title>/) {
      $fetched_title = $1;
   }
}

ÆÐÅÏ ¹®ÀÚ¿­·ÎºÎÅÍ º¯¼ö¸¦ ÃßÃâÇϱâ À§Çؼ­´Â ÃßÃâÇÏ·Á´Â ÆÐÅÏÀ» "(" °ú ")" À¸·Î ¸·¾Æ¾ß ÇÑ´Ù.
À§ÀÇ ¿¹Á¦´Â <title> ~ </title> »çÀÌ¿¡ ÀÖ´Â Àû¾îµµ 1 ¹®ÀÚ ÀÌ»óÀÇ ¹®ÀÚ¿­À» ²ôÁý¾î ³½´Ù. ¸¸¾à, <title> ~ </title> »çÀÌ¿¡ °ø¹é ¹®ÀÚ Á¶Â÷µµ ¾ø´Ù¸é º¯¼ö¿¡ ÇÒ´çµÇÁö ¾Ê°Ô µÈ´Ù.
±×¸®°í, ÃßÃâµÈ º¯¼ö´Â ±âº»ÀûÀ¸·Î °ýÈ£·Î ¸·¾ÆÁø ÆÐÅÏÀÇ ¼ø¼­´ë·Î $1, $2, $3 ...µîÀ¸·Î ±âº» º¯¼ö¿¡ ÇÒ´çµÈ´Ù. ¸¸¾à, <title> ~ </title> »çÀÌÀÇ ¹®ÀÚ¿­ÀÌ ´ÙÀ½°ú °°´Ù°í ÇÏÀÚ.
<title>Chapter 1 : Perl ¾ð¾îÀÇ ±âº»</title>

¿©±â¼­ "Chapter 1: ¹× "Perl ¾ð¾îÀÇ ±âº»" À̶ó´Â ¹®ÀÚ¿­ µÎ °³¸¦ º¯¼ö¿¡ ÀúÀåÇϰڴٰí ÇÏ¸é ¿¹Á¦´Â ´ÙÀ½°ú °°ÀÌ ¹Ù²ï´Ù.
foreach $line (@lines) {
   if ($line =~ /<title>(.*): (.*)</title>/) {
      $title_1 = $1;
      $title_2 = $2;
   }
}

°á±¹, $title_1 ¿¡´Â "Chapter 1"ÀÌ, $title_2 ¿¡´Â "Perl ¾ð¾îÀÇ ±âº»" À̶ó´Â °ªÀÌ ÇÒ´çµÇ°Ô µÈ´Ù.
±×¸®°í, ÆÐÅÏ ¹®ÀÚ¿­Àº Ư¼ö¹®ÀÚ¸¦ ±¸ºÐÇÑ´Ù. À§ÀÇ °æ¿ì¿¡´Â HTML ű׿¡¼­ ¾²ÀÌ´Â "/" ¹®ÀÚ¸¦ »ç¿ëÇÏ´Â °æ¿ìÀÌ´Ù. ÀÌ ¶§´Â ¹Ýµå½Ã "/" ¾Õ¿¡ ¹é½½·¡½¬()¸¦ ½á ÁÖ¾î¾ß ÇÑ´Ù.

(3) split, join ÇÔ¼ö

ÀÌ µÎ ÇÔ¼ö´Â ¹®ÀÚ¿­ 󸮿¡ À־ »ó´çÈ÷ Áß¿äÇÏ´Ù. splitÀº ƯÁ¤ÇÑ Á¤±Ô ¾î¹ý¿¡ ÀǰÅÇÏ¿© ƯÁ¤ ¹®ÀÚ¿­À» ¸» ±×´ë·Î "Âɰ³¼­" ¹è¿­¿¡ ÇÒ´çÇÏ´Â ¿ªÇÒÀ» Çϰí, join ÇÔ¼ö´Â ±×ÀÇ ¹Ý´ë ÀÛ¾÷À» ÇÑ´Ù.

¸¸¾à, ´ÙÀ½°ú °°Àº µ¥ÀÌŸ ÆÄÀÏÀÌ ÀÖ´Ù°í ÇÏÀÚ.

1|È«±æµ¿|¼­¿ï½Ã ¼­¿ïµ¿ 123-4¹øÁö|123-4567
2|±è±æµ¿|ºÎ»ê½Ã ºÎ»ê±¸ ºÎ»êµ¿ 12¹øÁö|051-234-5678

ÀÌ µ¥ÀÌŸ ÆÄÀÏÀ» Àо ÀÏÁ¤ÇÑ Æ÷¸ËÀ» °®Ãß¾î HTML¹®¼­·Î »Ñ·ÁÁÖ°í ½ÍÀ» °æ¿ì°¡ ÀÖ´Ù. À̶§ 1°³ÀÇ ·¹ÄÚµå(Record)ÀÇ °¢°¢ÀÇ Çʵå(Field)µéÀº "|" ·Î ±¸ºÐµÇ¾î ÀÖ´Ù. ÆÄÀÏ Reading(°ð ¼³¸íµË´Ï´Ù)À» ÅëÇØ¼­ ÀÌ ÆÄÀÏÀÇ ¶óÀεéÀ» ÀüºÎ ¶óÀÎ ¹è¿­ @lines¿¡ ÇÒ´çÇß´Ù¸é ÀÌÁ¦ °¢°¢ÀÇ ÇʵåµéÀ» split ÇÔ¼ö¸¦ ½á¼­ ºÐ¸®ÇÒ Çʿ䰡 ÀÖ´Ù.
¹°·Ð, //·Î µÑ·¯½ÎÀÎ ºÎºÐ¿¡´Â ¹®ÀÚ¿­À» Âɰ³±â À§ÇÑ ±¸ºÐÀÚ°¡ µé¾î°£´Ù.
@one_field = split(/|/, $one_record);

¡Ø "|" µµ Ư¼ö¹®ÀÚÀ̹ǷÎ, ¹é½½·¡½Ã()°¡ ÇÊ¿äÇÏ´Ù.
À§ÀÇ ¿¹Á¦´Â, ¸¸¾à º¯¼ö $one_record°¡ "1|È«±æµ¿|¼­¿ï½Ã ¼­¿ïµ¿ 123-4¹øÁö|123-4567" À̶ó´Â ¹®ÀÚ¿­ °ªÀ» °¡Áö°í ÀÖ´Ù¸é split ÇÔ¼ö´Â "|" ±¸ºÐÀÚ¸¦ °¡Áö°í ÀÌ ¹®ÀÚ¿­À» ³ª´©¾î¼­ @one_field ¶ó´Â ¹è¿­¿¡ ÇÒ´çÇØ ÁÖ´Â ¿ªÇÒÀ» ¼öÇàÇÑ´Ù. °á°ú´Â ´ÙÀ½°ú °°´Ù.
$one_field[0] = "1";
$one_field[1] = "È«±æµ¿";
$one_field[2] = "¼­¿ï½Ã ¼­¿ïµ¿ 123-4¹øÁö";
$one_field[3] = "123-4567";

¸¸¾à, ¿¬»ó ¹è¿­À» ÀÌ¿ëÇÑ´Ù¸é ±Ý»ó÷ȭ´Ù. ´ÙÀ½ÀÇ ¿¹¸¦ º¸ÀÚ.
@field_name = ('id', 'name', 'address', 'tel');

$one_record = "1|È«±æµ¿|¼­¿ï½Ã ¼­¿ïµ¿ 123-4¹øÁö|123-4567";

@fields = split(/|/, $one_record);

$i = 0;

foreach $field (@fields) {
   $FIELD{$field_name[$i]} = $field;
   $i++;
}

print "$FIELD{'id'}n";
print "$FIELD{'name'}n";
print "$FIELD{'address'}n";
print "$FIELD{'tel'}n";

¿¬»ó ¹è¿­À» ÀÌ¿ëÇÏ¸é µ¥ÀÌŸ ÆÄÀÏ °ü¸® ÇÁ·Î±×·¥À» º¸´Ù ´õ ½±°Ô ±¸¼ºÇÒ ¼ö ÀÖ´Ù.
¹Ý´ë ÀÛ¾÷À» join ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ÇÒ ¼ö ÀÖ´Ù. ¾î¶² ¹è¿­ÀÇ ³»¿ëµéÀ» ÁöÁ¤µÈ ±¸ºÐÀÚ¸¦ ÀÌ¿ëÇÏ¿© ÇϳªÀÇ º¯¼ö¿¡ ÇÒ´çÇÏ·Á¸é, ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.

$one_field[0] = "1";
$one_field[1] = "È«±æµ¿";
$one_field[2] = "¼­¿ï½Ã ¼­¿ïµ¿ 123-4¹øÁö";
$one_field[3] = "123-4567";

$new_record = join("|", @one_field);
print $new_record;

(4) ÆÐÅÏ ¸ÅĪÀ» ÀÌ¿ëÇÑ ¹®ÀÚ¿­ ¹× ´Ü¾îÀÇ Ä¡È¯(Substitution)
ÀÌ ±â´ÉÀº PERL¿¡¼­¸¸ º¼ ¼ö ÀÖ´Â, Áö±¸»óÀÇ ¸ðµç ¾ð¾î Áß¿¡¼­ °¡Àå °­·ÂÇÑ ±â´ÉÀÌ´Ù. ÆÐÅÏ ¸ÅĪÀ» ÀÌ¿ëÇÏ¿© ¿©·¯ºÐÀº ¶óÀÎ ´ÜÀ§·Î ¹®ÀÚ¿­ÀÇ Æ¯Á¤ ´Ü¾î¸¦ ġȯÇÒ ¼ö ÀÖ´Ù. ±âº» ±¸Á¶´Â ´ÙÀ½°ú °°´Ù.

$variable =~ s/[old-string]/[new-string]/[option];

ÀÌ·¸°Ô¸¸ ÇØ ÁÖ¸é, ±âÁ¸ º¯¼ö $variable ³»¿¡ ÀÖ´Â [old-string]À» [new-string]À¸·Î ¹Ù²Ù¾î ´Ù½Ã $variable ¿¡ Àç ÇÒ´çÇØ ÁØ´Ù. Áï, ¹®ÀÚ¿­ÀÇ Ä¡È¯(substitution) ÀÌ ÀϾ´Â °ÍÀÌ´Ù.

¿¹1) ÇÑ ¹®ÀÚ¿­ ³»¿¡ ÀÖ´Â "babo" ¶ó´Â ´Ü¾î¸¦ "fool" ·Î ġȯ

   $mystring = "you are a babo";
   $mystring =~ s/babo/fool/;
   print $mystring;

°á°ú1)

   you are a fool


ġȯ ½Ã ÈçÈ÷ ¾²ÀÌ´Â ¿É¼ÇÀÌ /g, /i, /e ÀÌ´Ù. ´ÙÀ½ÀÇ ¿¹¸¦ µé¾î º¸ÀÚ.
¿¹2)

   $mystring = "you are a babo, don't be a babo";
   $mystring =~ s/babo/fool/;
   print $mystring;

°á°ú2)

   you are a fool, don't be a babo


¸ðµç "babo"¶ó´Â ´Ü¾î°¡ "fool"·Î ¹Ù²î±â¸¦ ¹Ù·¨´Âµ¥ ¸Ç óÀ½ÀÇ "babo"¸¸ ¹Ù²î¾ú´Ù. ¿É¼ÇÀ» ÁÖÁö ¾Ê°í ±×³É ġȯÀ» ÇÏ°Ô µÇ¸é óÀ½ ¹ß°ßµÇ´Â ´Ü¾î¸¸ ¹Ù²Ù¾î ¹ö¸®°í ³¡³­´Ù. ÀÌ·² °æ¿ì¿¡´Â ³¡¿¡ /g (global) ¿É¼ÇÀ» ÁÖ¸é ¸ðµç "babo" °¡ "fool"·Î ¹Ù²ï´Ù.
¿¹3)

   $mystring = "you are a babo, don't be a babo";
   $mystring =~ s/babo/fool/g;
   print $mystring;

°á°ú3)

   you are a fool, don't be a fool


±×¸®°í, ¿©±â¿¡ /i (case Insensitive)¿É¼ÇÀ» ´õ ÁÖ°Ô µÇ¸é ´ë¼Ò¹®ÀÚ °¡¸®Áö ¾Ê°í ¸ðµÎ ¹Ù²Ù¾î ¹ö¸°´Ù.
¿¹4)

   $mystring = "you are a babo, don't be a BABO";
   $mystring =~ s/babo/fool/gi;
   print $mystring;

°á°ú4)

   you are a fool, don't be a fool


¹Ý´ë·Î, /e (case sEnsitive)¿É¼ÇÀº ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇϸ鼭 ġȯÇÏ°Ô µÈ´Ù.
¿¹5)

   $mystring = "you are a babo, don't be a BABO";
   $mystring =~ s/babo/fool/ge;
   print $mystring;

°á°ú5)

   you are a fool, don't be a BABO



--------------------------------------------------------------------------------




    








82   [PERL] Deprecated: Function eregi() is deprecated ¿¡·¯ ¼öÁ¤ ½ºÅ©¸³Æ®  hakkoo 2010/08/04 289
81   [PERL] Perl script to monitor disk space and send an email [2]  hakkoo 2008/01/16 2232
80   [PERL] Perl DBI ¸ðµâ ¿¹Á¦ [1]  hakkoo 2006/03/15 3103
79   [PERL] qmail-remote ÀÎÅͼÁÆ® (¹ß¼Û·Î±× ¸¸µé±â)  hakkoo 2005/10/03 2881
78   [PERL] ¿ø°Ý ¸ð´ÏÅ͸µ [12]  hakkoo 2005/08/25 2997
77   [PERL] ¸ÞÀÏ ¸±·¹ÀÌ Á¡°Ë  hakkoo 2005/08/04 2729
76   [PERL] Using Regular Expression  hakkoo 2005/02/05 2642
75  ºñ¹Ð±ÛÀÔ´Ï´Ù [PERL] B/D¿¡ arp ÆÐŶÀ» º¸³» mac Á¤º¸ °»½Å  hakkoo 2004/11/24 22
74   [PERL] SYN_Flooding °ø°ÝÀ» °¨Áö  hakkoo 2004/10/22 2649
73  ºñ¹Ð±ÛÀÔ´Ï´Ù [PERL] ip_alive.pl  hakkoo 2004/10/13 20
72  ºñ¹Ð±ÛÀÔ´Ï´Ù [PERL] technote_patch.pl  hakkoo 2004/10/09 18
71  ºñ¹Ð±ÛÀÔ´Ï´Ù [PERL] technote_id_search.pl  hakkoo 2004/10/07 8
70  ºñ¹Ð±ÛÀÔ´Ï´Ù [PERL] vuserinfo.pl  hakkoo 2004/08/24 24
69   [PERL] ¡Ù CPAN module·Î ÀνºÅç ¹Ù·ÎÇÏ±â  hakkoo 2004/07/29 2654
68   [PERL] Net::Telnet ¸ðµâ  hakkoo 2004/07/09 2557
67   [PERL] ¿©·¯°³ÀÇ ¹è¿­À̳ª ÇØ½¬ ¹ÝȯÇϱâ(¼­ºê·çƾ) [18]  hakkoo 2004/06/15 3360
66   [PERL] CGI ȯ°æ º¯¼ö  hakkoo 2004/06/15 2715
65   [PERL] ¼­ºê·çƾ ÀÛ¼º ¹× È£Ãâ¹ý  hakkoo 2004/06/15 2513
64   [PERL] ¡Ú ÆÄÀÏ ÀÔÃâ·Â ¹× °ü¸®  hakkoo 2004/06/15 2711
63   [PERL] HTML ¹®Àå Ãâ·ÂÇÏ±â  hakkoo 2004/06/14 2458

1 [2][3][4][5]
 

Copyright 1999-2010 / skin by sattonari