Perl Programming
£­ Perl ÀÔ¹® £­

ÀÓ ´ë È£(lawwal@way.co.kr) / Way-CGI ½Ã¸®Áî °³¹ßÀÚ

 

 

    ¸®´ª½º¿Í ÇÔ²² ²ÙÁØÈ÷ ¹ßÀüÇØ¿Â Perl.
    ¡°CGI ÃÖÀû¾ð¾î¡±¶ó´Â Æò°¡¸¦ ¹ÞÀº Áö´Â ÀÌ¹Ì ¿À·¡Áö¸¸ ±¹³»¿¡ Perl Àü¹®°³¹ßÀÚ°¡ ÀÇ¿Ü·Î Àû°í PerlÀÇ ¾²ÀÓ¼¼ ¶ÇÇÑ °¡º±°Ô ¿©±â´Â °æÇâÀÌ ÀÖ´Â °Ô Çö½ÇÀÌ´Ù.
    ´Ü¼øÈ÷ PerlÀº C¿Í ¹®¹ýÀÌ ºñ½ÁÇÏ°í CGI¸¦ Á¦ÀÛÇϱ⿡ Àû´çÇÏ´Ù´Â Á¤µµ·Î ÀνÄÇÏ°í ÀÖ´Â µ¶ÀÚ¶ó¸é ¿¬ÀçµÉ ±ÛµéÀ» ÁÖÀÇ ±í°Ô »ìÇDZ⸦ ±ÇÇÏ°í ½Í´Ù.  ÇÊÀÚ°¡ ¿¬ÀçÇÏ°Ô µÉ ³»¿ëÀº ÀÌ¹Ì ¸¹Àº Ã¥ÀÚ¿¡¼­ °Å·ÐµÇ¾úÀ» ¹ýÇÑ °Íµµ ÀÖ°í ÀüÇô »ö´Ù¸¥ ½Ãµµ¶ó°í ´À²¸Áö´Â °Íµµ ÀÖÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù.
    Áö¸é °ü°è»ó ¿øÇÏ´Â ¸ðµç ³»¿ëÀ» ½ÇÀ» ¼ö´Â ¾ø°ÚÁö¸¸ Àû¾îµµ Cº¸´Ù´Â °£°áÇÏ°í ½±°Ô ±¸ÇöµÇ´Â °á°ú¹°À» Á¢ÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºÇÒ °èȹÀÌ´Ù.

 

¥°. Perl ÀÔ¹®

    ÇÊÀÚ´Â Linux¸¦ Á¢Çϱâ ÀüºÎÅÍ PerlÀ» ÀÌ¿ëÇØ ¹èÆ÷¿ë CGI(http://way.co.kr)¸¦ À§½Ã·Î ÇÏ¿© °³¹ßÇØ¿ÔÀ¸¸ç, Linux¸¦ Á¢ÇÏ°Ô µÈ ÈĺÎÅÍ´Â Linux°¡ Perl ÇÁ·Î±×·¥ °³¹ß¿¡ ´õ¾øÀÌ Æí¸®ÇÑ È¯°æÀ» Á¦°øÇÑ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ¾ú´Ù.
    Linux ¼³Ä¡¸¦ ³¡³Â°í C³ª ±âŸ ¾ð¾î¸¦ ÇнÀÁßÀ̰ųª ÇнÀÇÒ °èȹÀÎ ¸®´ª¼­¶ó¸é PerlÀ» °øºÎÇغ¸¶ó°í ±ÇÇÏ°í ½Í´Ù.

    PerlÀÇ ±â´ÉÀº C¿¡¼­ ¸¹ÀÌ ºô·Á¿ÔÀ¸¸ç sed³ª awk µîÀÇ ¹®ÀÚ¿­ 󸮿ë ÇÁ·Î±×·¥¿¡¼­µµ ¸¹Àº ±â´ÉÀ» °è¼öÇÏ¿´´Ù.  ±×·¡¼­ C¸¦ ¾î´À Á¤µµ ¾Ë°í ÀÖ´Â »ç¶÷ÀÌ Perl ¼Ò½º¸¦ Á¢ÇÏ°Ô µÇ¸é À¯»çÇÑ ¹®¹ý ¶§¹®¿¡ ´ë·«ÀûÀÎ À±°ûÀ» ÆľÇÇÒ ¼ö ÀÖ°Ô µÈ´Ù. ±×·¸´Ù°í PerlÀ» ¹è¿ì±â À§ÇØ ÀϺη¯ C¸¦ ¸ÕÀú ¹è¿ì´Â ¾î¸®¼®À½Àº ¹üÇÏÁö ¸»±â¸¦ ¹Ù¶õ´Ù.

    ¿äÁò ÇÊÀÚ´Â Linux¿¡¼­ vi¿¡µðÅ͸¦ ÀÌ¿ëÇØ Perl ÇÁ·Î±×·¥À» °³¹ßÇÏ°í ÀÖ´Ù.  ´ëºÎºÐÀÇ Linux ¹èÆ÷ÆÇÀº PerlÀÌ ±âº»ÀûÀ¸·Î ¼³Ä¡µÇ°í ·¹µåÇÞ µîÀÇ ¹èÆ÷ÆÇÀº rpm°ú °°Àº ¹ÙÀ̳ʸ® ÆÐÅ°Áö ÇüÅ·ΠÁ¦°øµÇ¾î ¼³Ä¡ ¹× °ü¸®°¡ °£ÆíÇÏ´Ù.  ¸¸¾à PerlÀ» Á÷Á¢ ÄÄÆÄÀÏÇÏ¿© ¼³Ä¡ÇÏ·Á°Åµç http://www.perl.com/µî¿¡¼­ ÆÄÀÏÀ» ´Ù¿î·ÎµåÇÏ¸é µÇÁö¸¸ ±¸Ã¼ÀûÀÎ ¼³Ä¡¹æ¹ýÀº Áö¸é°ü°è»ó »ý·«Çϱâ·Î ÇÑ´Ù.  ¸¸¾à À©µµ¿ìÁî °è¿­ÀÇ ¼­¹ö¿¡¼­ Å×½ºÆ®Çغ¸°í ½Í´Ù¸é http://way.co.krÀÇ ¡°CGI °­Á¡± °Ô½ÃÆÇÀ» Âü°íÇϱ⠹ٶõ´Ù.

    ¸ÕÀú PerlÀÌ ¼³Ä¡µÇ¾îÀÖ´ÂÁö È®ÀÎÇغ¸ÀÚ.  ´ëºÎºÐÀÇ °æ¿ì /usr/bin °æ·Î¿¡ perl ÇÁ·Î±×·¥ÀÌ À§Ä¡ÇÒ °ÍÀÌ´Ù.  ·¹µåÇÞÀÇ °æ¿ì $ rpm -qa | grep perl ¸í·ÉÀ¸·Îµµ ¼³Ä¡¿©ºÎ¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù.  perl -v¸¦ ÀÔ·ÂÇÏ¸é ¼³Ä¡µÈ PerlÀÇ ¹öÀüÁ¤º¸¸¦ ¾òÀ» ¼ö ÀÖÀ¸¸ç perl -V´Â Á»´õ »ó¼¼ÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Ù.

    $ perl -v

    This is perl, version 5.004_05 built for i386-linux
    (with 1 registered patch, see perl -V for more detail)

    Copyright 1987-1998, Larry Wall
    < ÇÏ·« >

    ÇÁ·Î±×·¡¹Ö ¾ð¾î Áß¿¡´Â C µî°ú °°ÀÌ ÄÄÆÄÀÏÀ» ÅëÇØ µ¶ÀÚÀûÀÎ ÆÄÀÏ Çϳª·Îµµ ÇÁ·Î±×·¥ ½ÇÇàÀÌ °¡´ÉÇÑ ¾ð¾î°¡ ÀÖ´Ù. ÇÏÁö¸¸ PerlÀº ÇÁ·Î±×·¥ ¼Ò½º¸¦ Çؼ®ÇÏ¿© ½ÇÇàÇØÁÖ´Â ÇÁ·Î±×·¥(ÀÎÅÍÇÁ¸®ÅÍ, interpreter)ÀÌ ¼³Ä¡µÇ¾î ÀÖ¾î¾ß¸¸ ÇÏ°í ±× ¶§¹®¿¡ PerlÀ̳ª shell ½ºÅ©¸³Æ®´Â ¼Ò½ºÀÇ Ã¹ ¹ø° ÁÙ¿¡ #!/usr/bin/perl µî°ú °°ÀÌ Çؼ®¿ë ÇÁ·Î±×·¥ÀÇ À§Ä¡¸¦ Àû¾îÁÖ¾î¾ß ÇÏ´Â °ÍÀÌ´Ù.  ±×·¯´Ï±î PerlÀÌ ¼³Ä¡µÇ¾îÀÖÁö ¾ÊÀº ¼­¹ö¿¡¼­´Â Perl ¼Ò½º ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¼ö ¾ø´Ù°í º¸¸é µÇ´Â °ÍÀÌ´Ù.(ÃÖ±Ù¿¡´Â ¼Ò½º¸¦ ÄÄÆÄÀÏ ÇÏ´Â ¹æ¹ýµµ Á¦°øµÇ°í ÀÖ´Ù.)

1. ½ÇÇà¹æ¹ý

    Perl ¼Ò½º ÇÁ·Î±×·¥¿¡ ½ÇÇà±ÇÇÑ(chmod +x)À» ºÎ¿©ÇÏ°í ù ¹ø° ÁÙ¿¡ PerlÀÇ À§Ä¡¸¦ Àû¾îÁÙ °æ¿ì ´ÙÀ½°ú °°ÀÌ ÇÁ·Î±×·¥¸í¸¸À¸·Î Á÷Á¢ ½ÇÇà½Ãų ¼ö ÀÖ´Ù.  
    ƯÈ÷ À¥»ó¿¡¼­ ½ÇÇàÇÏ°íÀÚ ÇÒ °æ¿ì ÀÌ¿Í °°ÀÌ ÇØÁÖ¾î¾ß ÇÑ´Ù.

    $ program(ÇÁ·Î±×·¥¸í)

    ÇöÀç °æ·Î°¡ PATH¿¡ °É·ÁÀÖÁö ¾Ê´Ù¸é ./program°ú °°ÀÌ ½ÇÇàÇÏ¿©¾ß ÇÑ´Ù.
    ¸¸¾à shell »óÅ¿¡¼­ ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇÑ´Ù¸é ¼Ò½º ù ¹ø° ÁÙ¿¡ PerlÀÇ À§Ä¡¸¦ Àû¾îÁְųª ½ÇÇà±ÇÇÑÀ» ºÎ¿©ÇÒ ÇÊ¿ä°¡ »ç¶óÁø´Ù.

    $ perl ÇÁ·Î±×·¥¸í

    ÀÛ¼ºµÈ ¼Ò½ºÄÚµåÀÇ ¿À·ù¸¦ Á¡°ËÇϱâ À§Çؼ­´Â perl -c ¿É¼ÇÀ» ÀÌ¿ëÇÑ´Ù.  
    ¼Ò½ºÄڵ忡 ÀÌ»óÀÌ ¾øÀ» °æ¿ì ¡°syntax OK¡±¶ó´Â ¸Þ½ÃÁö°¡ ³ªÅ¸³­´Ù.

    $ perl -c ÇÁ·Î±×·¥¸í

 

2. ÇÁ·Î±×·¥ ¸Àº¸±â

    PerlÀÌ ½Ã½ºÅÛ¿¡ ¼³Ä¡µÇ¾îÀÖ´Ù¸é ÀÌÁ¦ºÎÅÍ °£´ÜÇÑ Perl ¹®¹ýºÎÅÍ ÀÍÇôº¸µµ·Ï ÇÏÀÚ.

    print ¡°Hello, Way!¡¬n¡±;

    °£´ÜÇϸ鼭µµ ¿Ïº®ÇÑ ÇϳªÀÇ ÇÁ·Î±×·¥ÀÌ´Ù. vi µîÀÇ ÆíÁý±â¿¡ ¼Ò½º³»¿ëÀ» ÀÔ·ÂÇÏ¿© ÀúÀåÇÑ ÈÄ ½ÇÇàÇØ º¸ÀÚ.

    $ perl hello(ÆÄÀϸí)
    Hello, Way!

    ¼Ò½º¸¦ ºÐ¼®Çغ¸¸é, ¡°Hello, Way!¡±¶ó´Â ¹®ÀÚ¿­°ú ÇÔ²² ÁÙ ¹Ù²Þ ¹®ÀÚ(¡¬n)¸¦ Ãâ·ÂÇÏ´Â °ÍÀÌ¸ç °¢ ÁÙÀÇ ³¡Àº ;(¼¼¹ÌÄÝ·Ð) ±âÈ£·Î ¸¶¹«¸®ÇÑ´Ù.

 

3. º¯¼ö¿Í ±âº»¿¬»ê

    ´Ù¸¥ ¾ð¾îµé°ú´Â ´Þ¸® º¯¼öÇüÀ» ÁöÁ¤ÇÒ ÇÊ¿ä ¾øÀÌ ´ëÀÔ°ú µ¿½Ã¿¡ º¯¼öÇüÀÌ °áÁ¤µÈ´Ù.  º¯¼ö´Â $±âÈ£·Î ½ÃÀÛµÇ¸ç ¹è¿­ÀÇ °æ¿ì @, Á¶Çչ迭(hash)Àº %±âÈ£·Î ½ÃÀ۵ȴÙ.  $bom = 123; °ú °°ÀÌ $bom º¯¼ö¿¡ 123À̶ó´Â Á¤¼ö¸¦ ´ëÀÔÇÏ°Ô µÇ¸é º°µµÀÇ Á¶Ä¡ ¾øÀÌ Á¤¼öÇüÀ» °®°Ô µÈ´Ù.  º¯¼ö°£ÀÇ ¿¬»êµµ ¸Å¿ì ÀÚÀ¯·Ó´Ù.  ¿¹¸¦ µé¾î ´ÙÀ½°ú °°Àº °æ¿ì °á°ú°ªÀº Á¤»óÀûÀÎ ¼öÄ¡ ¿¬»ê°á°úÀÎ 100ÀÌ Ãâ·ÂµÈ´Ù.

    $bom = 49;   # Á¤¼ö
    $danvi = ¡°51¡±;   # ¹®ÀÚ¿­
    print $bom + $danvi;  # 100 Ãâ·Â

    perl ¹®¹ý»ó # ±âÈ£ ÀÌÈĺÎÅÍ´Â ÁÖ¼®À¸·Î ÀνÄÇÑ´Ù.  ¿¹»óÇϵíÀÌ Perl¿¡¼­´Â »çÄ¢¿¬»ê¿¡ +, -, *, / ±âÈ£°¡ ÀÌ¿ëµÇ¸ç ³ª¸ÓÁö(°è¼ö)¿¡´Â % ±âÈ£°¡ »ç¿ëµÈ´Ù.
    ¹®ÀÚ¿­ ¿¬»êÀÚ´Â .(¸¶Ä§Ç¥, dot)¸¦ »ç¿ëÇϸç, ¿¬»ê¹æ¹ý ¶ÇÇÑ ¾Õ¿¡¼­¿Í °°ÀÌ °£´ÜÇÏ´Ù.

    $bom = 100;  # Á¤¼ö
    $danvi = ¡°200¡±;  # ¹®ÀÚ¿­

    print $bom . $danvi; ¿Í °°ÀÌ ¹®ÀÚ¿­ ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¸é ¡°100200¡±ÀÌ Ãâ·ÂµÇ°í print $bom + $danvi; ¿Í °°ÀÌ ¼öÄ¡¿¬»êÀÚ¸¦ ÀÌ¿ëÇϸé 300ÀÌ Ãâ·ÂµÈ´Ù.

 

4. Á¶°Ç¹®

    if (Á¶°Ç) { ÂüÀÏ ¶§; }
    else { °ÅÁþÀÏ ¶§; }

    µÎ °³ ÀÌ»óÀÇ Á¶°Ç¹®Àº elsif(¡°elseif¡±°¡ ¾Æ´Ô¿¡ ÁÖÀÇ)¸¦ ÀÌ¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ ±¸¼ºÇÒ ¼ö ÀÖ´Ù.

    if (Á¶°Ç) { ÂüÀÏ ¶§; }
    elsif (Á¶°Ç) { »õ·Î¿î Á¶°ÇÀÌ ÂüÀÏ ¶§; }
    elsif (Á¶°Ç) { »õ·Î¿î Á¶°ÇÀÌ ÂüÀÏ ¶§; }
    . . . .
    else { ¸ðµÎ °ÅÁþÀÏ ¶§; }

    Á¶°ÇÆǺ°À» À§ÇÑ ¿¬»êÀڷμ­ ==(eq)´Â ÀÏÄ¡, !=(ne)´Â ºÒÀÏÄ¡·Î »ç¿ëµÇ¸ç <, >, <=, >= µîÀÇ ±âÈ£¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.  ¶ÇÇÑ ³í¸®¿¬»êÀڷμ­ &&(and), ||(or), !(not)µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù.(±âÈ£¿Í ¿µ¹® ¸ðµÎ »ç¿ëÇÒ ¼ö ÀÖ´Ù.)

    $bom = 5;
    if ($bom < 10 and $bom > 3) {
      print ¡°10º¸´Ù´Â ÀÛ°í 3º¸´Ù´Â Å©´Ù. ¡¬n¡±; }

    ¼Ò½º¸¦ ½ÇÇàÇغ¸¸é ´ç¿¬È÷ ¡°10º¸´Ù´Â ÀÛ°í 3º¸´Ù´Â Å©´Ù.¡±°¡ Ãâ·ÂµÉ °ÍÀÌ´Ù.

    if¿Í´Â ¹Ý´ë·Î »ç¿ëµÇ´Â Á¶°Ç¹®À¸·Î´Â unless°¡ ÀÖ´Ù.

    unless (Á¶°Ç) { °ÅÁþÀÏ ¶§; }
    else { ÂüÀÏ ¶§; }

 

5. ¹Ýº¹¹®

    while (Á¶°Ç) { Á¶°ÇÀÌ ÂüÀÎ µ¿¾È ½ÇÇà; }
    until (Á¶°Ç) { Á¶°ÇÀÌ °ÅÁþÀÎ µ¿¾È ½ÇÇà; }
    ¹«ÇÑ·çÇÁ¸¦ ¿øÄ¡ ¾Ê´Â´Ù¸é ´ç¿¬È÷ Áß°ýÈ£({})¸¦ ½ÇÇàÇÏ´Â µ¿¾È Á¶°Ç°ú °ü·ÃÇÑ °ªÀÌ º¯È­µÇ¾î¾ß ÇÒ °ÍÀÌ´Ù.

    $bom = 1;
    while($bom <= 10) {
       print $bom, ¡°¡¬n¡±;
       $bom++; }

    ÃʱâÀÇ $bomÀÇ °ªÀº 1À̾ú°í ÇØ´ç °ªÀÌ 10º¸´Ù À۱⠶§¹®¿¡ while¹®ÀÇ Á¶°Ç¿¡ ÀÏÄ¡ÇϹǷΠÁß°ýÈ£({}) °¡ ½ÇÇàµÈ´Ù.  Áß°ýÈ£·Î 󸮹æÇâÀÌ ³Ñ°ÜÁø ÈÄ print ¹®¿¡ µû¶ó $bomÀÇ °ªÀÎ 1ÀÌ Ãâ·ÂµÈ´Ù. ¸¸¾à $bom++; ¿Í °°ÀÌ $bom °ªÀ» º¯È­½ÃÄÑÁÖÁö ¾Ê´Â´Ù¸é $bom °ªÀº ¿µ¿øÈ÷ 1ÀÏ °ÍÀ̹ǷΠ¹«ÇÑ·çÇÁ°¡ µÇ¾î¹ö¸± °ÍÀÌ´Ù. $bom++ ´Â ÀÚµ¿Áõ°¡¸¦ ¶æÇÏ´Â °ÍÀ¸·Î¼­ ¿ø·¡ÀÇ $bom °ª¿¡ 1À» °¡»êÇÑ ÈÄ ´Ù½Ã $bom¿¡ °ªÀ» ÀúÀåÇÏ°Ô µÇ´Â °ÍÀÌ´Ù. $bom-- ´Â ±× ¹Ý´ëÀÌ´Ù. ·çÇÁ¸¦ Çѹø µ¹°ÔµÇ¸é $bom °ªÀº 2°¡ µÇ°í Çѹø¾¿ ´õ µ¹ ¶§¸¶´Ù 3, 4, 5, 6, 7, 8, 9, 10ÀÌ µÈ´Ù.  $bom °ªÀÌ 10ÀÏ °æ¿ì 10À» Ãâ·ÂÇÏ°í $bom++ ¿¡ µû¶ó $bom °ªÀÌ 11ÀÌ µÇ¸é¼­ while¹®ÀÇ Á¶°Ç¿¡ ¸ÂÁö ¾Ê¾Æ ·çÇÁ´Â °á±¹ Á¾·áµÈ´Ù.

    ¶Ç´Ù¸¥ ¹Ýº¹¹®À¸·Î´Â for¹®ÀÌ ÀÖ´Ù.

    for (ÃʱⰪ; Á¶°Ç; º¯È­°ª) { Á¶°ÇÀÌ ÂüÀÎ µ¿¾È ½ÇÇà; }

    ´ÙÀ½ ¼Ò½º´Â ¾Õ¼­ ¼³¸íÇÑ while¹®ÀÇ ¿¹Á¦¿Í µ¿ÀÏÇÑ °á°ú¸¦ º¸ÀÌ°Ô µÈ´Ù.

    for ($bom = 1; $bom <= 10; $bom++) {
       print $bom, ¡°¡¬n¡±; }

    ¹Ýº¹¹®Áß¿¡´Â foreach¹®µµ ÀÖÀ¸³ª ¹è¿­°ú °ü·ÃÇÏ¿© ÁÖ·Î »ç¿ëµÇ¹Ç·Î ¼³¸íÀ» µÚ·Î ¹Ì·ç±â·Î ÇÏ°Ú´Ù.

 

6. ÆÄÀÏ Çڵ鸵

    ÆÄÀÏÀ» Àаųª ÀúÀåÇϱâ À§Çؼ­´Â ÆÄÀÏÀ» ¿­¾î¾ßÇϸç ÀϹÝÀûÀ¸·Î ´ÙÀ½°ú °°Àº ±ÔÄ¢¿¡ ÀÇÇØ »ç¿ëµÇ¾îÁø´Ù.

    open(ÆÄÀÏÇÚµé, ¡°[Á¶ÀÛ¹æ¹ý] ÆÄÀÏ¸í¡±);

    ¡®ÆÄÀÏÇڵ顯Àº »ç¿ëÀÚÀÇ ½Äº°À» ¿ëÀÌÇÏ°Ô Çϱâ À§ÇØ ÀÓÀÇ·Î ÁöÁ¤ÇÏ¿© »ç¿ëÇÑ´Ù. ¡®Á¶ÀÛ¹æ¹ý¡¯¿¡´Â ÀбâÀü¿ë(< ¶Ç´Â »ý·«), ¾²±â(>), µ¡ºÙÀ̱â(>>) µîÀÌ ÀÖ´Ù.

    open(FILE, ¡°>bom¡±);
      print FILE ¡°Way¡¬n¡±;
    close(FILE);

    ºÐ¼®Çغ¸¸é ´ÙÀ½°ú °°´Ù.

    open(FILE, ¡°>bom¡±);

    bomÀ̶ó´Â ÆÄÀϸíÀ¸·Î ÆÄÀÏÀ» ¾²±â¸ðµå·Î ¿­µÇ ÆÄÀÏÇÚµéÀº FILE·Î ÁöÁ¤ÇÑ´Ù.

    print FILE ¡°Way¡¬n¡±;

    FILEÀ̶ó´Â ÆÄÀÏÇÚµé(½ÇÁ¦·Î´Â bomÀ̶ó´Â ÆÄÀÏ)¿¡ ¡°Way¡¬n¡±¶ó´Â ¹®ÀÚ¿­À» ±â·ÏÇÑ´Ù.

    close(FILE);

    FILE À̶ó´Â ÇÚµéÀÇ ÆÄÀÏÀ» ´Ý´Â´Ù.  Á¶ÀÛÀÌ ³¡³ª´Â Áï½Ã ´Ý´Â °Ô ¹Ù¶÷Á÷ÇÏ´Ù.

    ¾Õ¿¡¼­ ¾Ë ¼ö ÀÖµíÀÌ ÆÄÀÏÇÚµéÀ» »ç¿ëÇÔÀ¸·Î Çؼ­ ƯÁ¤ ÆÄÀÏ¿¡ print(±â·Ï)ÇÏ°í, ¼Õ½±°Ô ÆÄÀÏÀ» ´ÝÀ» ¼ö ÀÖ°Ô µÈ´Ù.
    ¼Ò½º°¡ ½ÇÇàµÇ°Ô µÇ¸é bomÀ̶ó´Â ÆÄÀÏÀÌ »ý¼ºµÇ¾îÁö°í ÆÄÀÏ¿¡´Â Way¶ó´Â ³»¿ëÀÌ µé¾î°¡°Ô µÉ °ÍÀÌ´Ù.
    ¾²±â¸ðµåÀÏ °æ¿ì ÀÌ¹Ì µ¿ÀÏÇÑ ÆÄÀÏÀÌ Á¸ÀçÇÏ¸é ³»¿ëÀ» µ¤¾î¾²°Ô µÇ¹Ç·Î Á¾Àü³»¿ëÀ» ÀÒ°Ô µÈ´Ù. ÇÏÁö¸¸ µ¡ºÙÀ̱â(>>)¸ðµå·Î ÆÄÀÏÀ» ¿­°Ô µÇ¸é Á¾Àü³»¿ëÀÇ ÇÏ´Ü¿¡ »õ·Î¿î ³»¿ëÀÌ Ãß°¡µÈ´Ù.(´ëºÎºÐÀÇ logÆÄÀÏ ÀúÀå¹æ½Ä°ú µ¿ÀÏÇÏ´Ù.)

    ÀÌÁ¦ ´ÙÀ½°ú °°Àº ¼Ò½º¸¦ ÀÛ¼ºÇÏ¿© ½ÇÇàÇغ¸ÀÚ.

    open(FILE, ¡°>>bom¡±);
      print FILE ¡°Way2¡¬n¡±;
    close(FILE);

    Ưº°ÇÑ ¹®Á¦°¡ ¾ø´Â ÇÑ bomÀ̶ó´Â ÆÄÀϳ»¿ëÀº ´ÙÀ½°ú °°À» °ÍÀÌ´Ù.

    $ cat bom
    Way
    Way2
    $

    ÀúÀåÇÏ´Â ¹æ¹ýÀ» ¾Ë¾ÒÀ¸´Ï ÀÌÁ¦ ÀÐ¾î ¿À´Â ¹æ¹ýÀ» ¾Ë¾Æº¸ÀÚ.
    open(FILE, ¡°bom¡±);
      $line1 = <FILE>;
      $line2 = <FILE>;
    close(FILE);

    <FILE>ÀÌ ¾î¶² ±â´ÉÀ» ÇÏ´ÂÁö ±Ã±ÝÇÒ °ÍÀÌ´Ù.  <FILE>¿¡¼­ FILEÀº ¾Õ¿¡¼­¿Í ¸¶Âù°¡Áö·Î ÆÄÀÏÇÚµéÀ̸ç <>(¡®ÁÙÀÔ·Â ¿¬»êÀÚ¡¯¶ó°íµµ ÇÑ´Ù.)·Î ¹­À̹ǷΠÇؼ­ ÇÑ ÁÙÀ» ÀÐ¾î ¿Â´Ù´Â ¶æÀÌ´Ù.

    $line1= <FILE>;
    bomÆÄÀÏÀÇ Ã¹ ¹ø° ÁÙ ³»¿ëÀ» $line1 À̶ó´Â º¯¼ö¿¡ ÀúÀå(´ëÀÔ)ÇÑ´Ù.

    $line2 = <FILE>;
    Çѹø ´õ <FILE>À» »ç¿ëÇÏ¿´À¸¹Ç·Î µÎ ¹ø° ÁÙÀ» Àоî $line2¿¡ ÀúÀåÇÏ´Â °ÍÀÌ´Ù.  ±×·±µ¥ ¸ðµç ÆÄÀÏÀÇ ³»¿ëÀ» ÇϳªÀÇ º¯¼ö¿¡ ³Ö¾î Á¶ÀÛÇÏ°íÀÚ ÇÑ´Ù¸é ¸î ÁÙÀÎÁö ¾Ë ¼ö ¾ø±â ¶§¹®¿¡ ¾ÕÀÇ ¹æ¹ýº¸´Ù´Â ´ÙÀ½°ú °°ÀÌ while¹®À» ÀÌ¿ëÇÏ´Â °ÍÀÌ Æí¸®ÇÏ´Ù.

    open(FILE, ¡°bom¡±);
      while($line = <FILE>) {
            $all_line = $all_line . $line; }
    close(FILE);

    ¾à°£ º¹ÀâÇÏ°Ô ´À²¸Áú ¼öµµ ÀÖÀ» °ÍÀÌ´Ù.  Ã¹ÁÙ°ú ¸¶Áö¸· ÁÙÀº ¼³¸íÀÌ ÇÊ¿ä ¾øÀ» µí ÇÏ¿© °¡¿îµ¥ºÎºÐ¸¸ ¼³¸íÇϵµ·Ï ÇÏ°Ú´Ù.  while¹®Àº ÂüÀÏ °æ¿ì ¹Ù·Î µÚ¿¡ À§Ä¡ÇÑ Áß°ýÈ£({})°¡ ½ÇÇàµÈ´Ù.  Perl¿¡¼­´Â ¾Æ¹«·± °ªÀÌ ¾øÀ» °æ¿ì ¡®°ÅÁþ¡¯À» µ¹·ÁÁֹǷΠbom À̶ó´Â ÆÄÀÏÀ» ¸ðµÎ Àоî¿À°í ³ª¸é while ·çÇÁ°¡ Á¾·áµÇ´Â °ÍÀÌ´Ù.  ¾à°£ ´õ ¼³¸íÀ» µ¡ºÙÀÌÀÚ¸é, $line = <FILE> ÀÌ ÂüÀÏ °æ¿ì(Àоî¿Ã ÁÙÀÌ ÀÖÀ» °æ¿ì´Â ÂüÀÌ µÈ´Ù.) $line º¯¼ö¿¡ Àоî¿Â ÁÙÀÇ ³»¿ëÀ» ÀúÀåÇÏ°í ¹®ÀÚ¿­¿¬»êÀÚ(.)¿¡ ÀÇÇØ $all_line º¯¼ö¿¡ Ãß°¡µÇ¸ç, ÆÄÀÏ ³¡±îÁö ÀÐ°í ³ª¸é Àоî¿Ã ÁÙÀÌ ¾ø¾î °ÅÁþÀ» ¸®ÅÏ ÇϹǷΠwhile ·çÇÁ°¡ Á¾·áµÇ´Â °ÍÀÌ´Ù.

    ´ÙÀ½°ú °°ÀÌ °£´ÜÈ÷ ³ªÅ¸³¾ ¼öµµ ÀÖ´Ù.

    open(FILE, ¡°bom¡±);
      while(<FILE>) { $all_line .= $_; }
    close(FILE);

    $all_line .= $_ ºÎºÐÀº $all_line = $all_line . $_¿Í µ¿ÀÏÇÑ °á°ú¸¦ º¸ÀδÙ.

    ÀÌÁ¦ ƯÁ¤ÆÄÀÏÀÇ ³»¿ëÀ» ÀÐ¾î º¯¼ö¿¡ ÀúÀåÇÏ¿´À¸¸ç À̷νá Á¶ÀÛÀÌ °¡´ÉÇÏ°Ô µÇ¾ú´Ù.

    ÆÄÀÏÀ» ¿­°Å³ª Á¶ÀÛÇÏ°íÀÚ ÇÒ ¶§ ¹ß»ýÇÒ ¼ö ÀÖ´Â ¿À·ù¸¦ ¹Ì¸® ¿¹¹æÇÏ°í ÆÄÀÏ(¶Ç´Â µð·ºÅ丮)¿¡ °üÇÑ Á¤º¸¸¦ ¾ò¾î È°¿ëÇϱâ À§ÇØ PerlÀº ´Ù¾çÇÑ ÆÄÀÏÅ×½ºÆ® ¿¬»êÀÚ¸¦ Á¦°øÇÑ´Ù.

    ÁÖ¿ä ¿¬»êÀÚ´Â ´ÙÀ½°ú °°´Ù.

     

    - e

      Á¸Àç ¿©ºÎ

    - r

      Àб⠰¡´É ¿©ºÎ

    - w

      ¾²±â °¡´É ¿©ºÎ

    - x

      ½ÇÇà °¡´É ¿©ºÎ

    - d

      µð·ºÅ丮 ¿©ºÎ

    - T

      ÅؽºÆ®ÆÄÀÏ ¿©ºÎ

    - B

      ÀÌÁøÆÄÀÏ(binary)  ¿©ºÎ

    - s

      ÆÄÀÏÅ©±â

     

    if (-e ¡°bom¡±) { print ¡°ÆÄÀÏ ÀÖÀ½¡¬n¡±; }
    else { print ¡°ÆÄÀÏ ¾øÀ½¡¬n¡±; }

    print ¡°bom ÆÄÀÏÀÇ Å©±â´Â ¡°, -s ¡°bom¡±, ¡° byteÀÔ´Ï´Ù.¡¬n¡±;

 

7. ÇÔ¼ö

    ±¸Á¶ÀûÀÎ ÇÁ·Î±×·¥À» À§ÇØ, ƯÈ÷ ºó¹øÈ÷ »ç¿ëµÇ´Â ƯÁ¤ ±â´ÉÀ̳ª ó¸®ÀýÂ÷¸¦ ÇϳªÀÇ ÇÔ¼ö·Î »ý¼ºÇÏ¿© È°¿ëÇÒ ¼ö ÀÖ´Ù.

    ÇÔ¼ö´Â ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¸ç &ÇÔ¼ö¸í°ú °°ÀÌ È£ÃâÇÑ´Ù. ÇÔ¼ö´Â Áß°ýÈ£({})·Î ¹­À̸ç ÇÔ¼ö¿µ¿ª ³»¿Ü¸¦ ºÒ¹®ÇÏ°í »ç¿ëµÇ¾îÁö´Â ¹®¹ýÀº µ¿ÀÏÇÏ´Ù.

    sub ÇÔ¼ö¸í { 󸮳»¿ë; }

    ¾Õ¼­ ¼³¸íÇß´ø for¹®À» ÀÌ¿ëÇØ ÇÔ¼ö¸¦ Àû¿ëÇغ¸°Ú´Ù.

    for ($bom = 1; $bom <= 10; $bom++) {
       print $bom, ¡°¡¬n¡±;
       &job; }

    sub job { print ¡°===============¡¬n¡±; }

    ¼Ò½º¸¦ ½ÇÇàÇغ¸¸é 1ºÎÅÍ 10±îÁö Ãâ·ÂµÇ´Â °úÁ¤Áß ¼ýÀÚ »çÀÌ»çÀÌ¿¡ ±¸ºÐ¼±ÀÌ ±×¾îÁú °ÍÀÌ´Ù.  ÀÌ·± ¿ëµµÀÇ ÇÔ¼ö´Â ÀÛ¾÷À» Á»´õ °£°áÈ÷ ÇÏ´Â Á¤µµÀÇ È¿°ú¹Û¿¡ ±â´ëÇÒ ¼ö ¾øÁö¸¸, ´ÙÀ½°ú °°Àº °æ¿ì È£Ãâ½Ã &ÇÔ¼ö¸í(¡°³Ñ±æ°ª¡±)°ú °°ÀÌ ÀÎÀÚ¸¦ ³Ñ±â°í È£ÃâµÈ ÇÔ¼ö¿¡¼­´Â ³Ñ°Ü¹ÞÀº ÀÎÀÚ¸¦ °è»ê(ó¸®)ÇÏ¿© °á°ú¸¦ ¸®ÅÏÇϰԵǴ ¿ÏÀüÇÑ ÇÔ¼öÀÇ ÇüŸ¦ ¶ç°Ô µÈ´Ù.

    for ($bom = 1; $bom <= 10; $bom++) {
       $danvi = &job($bom);
       # job ÇÔ¼ö·Î $bomÀ̶ó´Â º¯¼ö°ªÀ» ³Ñ±â°í,
       # µ¹·Á ¹ÞÀº 󸮰á°ú¸¦ $danvi º¯¼ö¿¡
       # ÀúÀåÇÑ´Ù.
       print $danvi, ¡°¡¬n¡±; }

    sub job {
      ($input) = @_;   # °ªÀ» ³Ñ°Ü¹Þ´Â´Ù.
      $output = $input * 10;  # °è»êÇÑ´Ù.
      return $output; }  # °á°ú¸¦ µ¹·ÁÁØ´Ù.

    ¼Ò½º¸¦ ½ÇÇàÇغ¸¸é 10, 20, 30, ... °ú °°ÀÌ $bom °ª¿¡ 10À» °öÇÑ °ªÀÌ ¼ø¼­´ë·Î Ãâ·ÂµÈ´Ù.

 

8. ¹è¿­

    ¿©·¯ °³ÀÇ °ªµéÀ» ÇϳªÀÇ º¯¼ö¿¡ ÀúÀåÇÏ¿© È°¿ëÇϱâ À§ÇØ ¹è¿­(array)°ú Á¶Çչ迭(hash)ÀÌ Áö¿øµÈ´Ù.  µÑÀÇ Â÷ÀÌÁ¡Àº À妽º(index)°¡ ¼ýÀÚÀΰ¡ ±×·¸Áö ¾ÊÀº°¡ ÀÌ´Ù.

    ¹è¿­¿¡ °ªµéÀ» Á÷Á¢ ´ëÀÔÇÏ´Â ¹æ¹ýÀº °ýÈ£¸¦ ÀÌ¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌÇÑ´Ù.
    @way = (1, 2, 3, 4, 5);

    ¹è¿­´ëÀÔÀº ´ÙÀ½°ú °°ÀÌ °³º°ÀûÀ¸·Îµµ °¡´ÉÇÏ´Ù.
    $way[0] = 1;
    $way[1] = 2;
    $way[2] = 3;
    $way[3] = 4;
    $way[4] = 5;

    ¹è¿­À» ÀϹݺ¯¼öÇüÅ·ΠÃßÃâÇϱâ À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÑ´Ù.
    $way[¹è¿­¹øÈ£]

    ù ¹ø° °ªÀÇ ¹è¿­¹øÈ£´Â 0ÀÌ´Ù.  µû¶ó¼­ $way[0]¿¡´Â 1ÀÌ, $way[1]¿¡´Â 2°¡ ÀúÀåµÇ¾î ÀÖ´Â °ÍÀÌ´Ù.

    ¹è¿­¿¡¼­ °ªÀ» ÃßÃâÇÏ¿© ¶Ç ´Ù¸¥ º¯¼ö¿¡ ÀúÀåÇغ¸ÀÚ.
    $bom1 = $way[0];
    $bom2 = $way[1];
    $bom3 = $way[2];
    $bom4 = $way[3];
    $bom5 = $way[4];

    ¶Ç ´Ù¸¥ ¹æ¹ýÀ¸·Î´Â ´ÙÀ½°ú °°Àº ¹æ¹ýµµ Á¸ÀçÇÑ´Ù.
    ¹è¿­¿¡ Á÷Á¢ ´ëÀÔÇÏ´ø °Í°ú´Â ¹Ý´ëÀÌ´Ù.
    ($bom1, $bom2, $bom3, $bom4, $bom5) = @way;

    Á¶Çչ迭Àº %±âÈ£¸¦ »ç¿ëÇÏ¸ç ¼ýÀÚÀ妽º ´ë½Å ÀÓÀÇÀÇ ¹®ÀÚ¿­(key)À» À妽º·Î °®´Â´Ù.  µû¶ó¼­ ÀúÀåµÈ ¼ø¼­´Â ±×´ÙÁö Å« Àǹ̰¡ ¾ø´Ù.

    %way = (¡°»¡°­¡± => ¡°red¡±,
                 ¡°ÆĶû¡± => ¡°blue¡±,
                 ¡°°ËÁ¤¡± => ¡°black¡±);

    ¾Õ¼­ ¼³¸íÇÑ ¹è¿­°ú µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î ´ëÀÔÇÏ¿´Áö¸¸ ÁÖÀÇ ±í°Ô °üÂûÇÒ ºÎºÐÀº => ±âÈ£¸¦ ÀÌ¿ëÇؼ­ key¿Í value·Î ±¸¼ºµÈ´Ù´Â °ÍÀÌ´Ù.

    ¸¶Âù°¡Áö·Î $way{¡®»¡°­¡¯} = ¡°red¡±; ¿Í °°Àº ¹æ½ÄÀ¸·Î °³º°ÀûÀÎ ÀúÀåµµ °¡´ÉÇÏ´Ù.

    ÀڷḦ ÃßÃâÇϱâ À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÏ¸é µÈ´Ù.

    $way{key}

    $way{¡®»¡°­¡¯} ¿¡´Â ¡°red¡±°¡, $way{¡®ÆĶû¡¯}¿¡´Â ¡°blue¡±°¡ ÀúÀåµÇ¾î ÀÖ´Ù.

    º¸Åë => ±âÈ£ ´ë½Å ,(comma)¸¦ »ç¿ëÇϱ⵵ ÇÏÁö¸¸ °¡µ¶¼ºÀ» ³ôÀ̱â À§ÇØ => ±âÈ£¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.

    print ¡°ÆĶû»öÀº ¿µ¹®À¸·Î $way{¡®ÆĶû¡¯}ÀÔ´Ï´Ù.¡¬n¡±;

    ¼Ò½º°¡ ½ÇÇàµÇ¸é ¡°ÆĶû»öÀº ¿µ¹®À¸·Î blueÀÔ´Ï´Ù.¡±°¡ Ãâ·ÂµÉ °ÍÀÌ´Ù.
    Á¶Çչ迭Àº keys¿Í values¸¦ ÀÌ¿ëÇØ À妽º³ª °ª¸¸À» ÃßÃâÇس¾ ¼ö ÀÖ´Ù.
    print keys %way
    ¼Ò½º°¡ ½ÇÇàµÇ¸é ¡°»¡°­ÆĶû°ËÁ¤¡± µî°ú °°ÀÌ Ãâ·ÂµÈ´Ù.

    ÀÌÁ¦ ¾Õ¿¡¼­ ¼³¸íÀ» ¹Ì·ð´ø foreach¹®¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ.

    foreach ÃßÃâ°ª (¹è¿­ ¶Ç´Â ¸ñ·Ï) { ½ÇÇ࿵¿ª; }

    ¹è¿­°ªÀ» Çϳª¾¿ ÃßÃâÇÏ°í ±×¶§¸¶´Ù Áß°ýÈ£·Î ¹­ÀÎ ½ÇÇ࿵¿ªÀ» °ÅÄ¡°Ô µÈ´Ù. ¹è¿­ÀÇ ¸ðµç ¿ø¼Ò°¡ ÃßÃâµÇ°í ³ª¸é ·çÇÁ´Â Á¾·áµÈ´Ù.

    @bom = (¡°º½¡±, ¡°¿©¸§¡±, ¡°°¡À»¡±, ¡°°Ü¿ï¡±);
    foreach $danvi (@bom) {
      $count ++;
      print ¡°$count, $danvi¡¬n¡±; }

    ¼Ò½º¸¦ ½ÇÇàÇÏ¸é ´ÙÀ½°ú °°ÀÌ Ãâ·ÂµÉ °ÍÀÌ´Ù.

    1, º½
    2, ¿©¸§
    3, °¡À»
    4, °Ü¿ï

    foreach¹®Àº ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.  °á°ú´Â ¾ÕÀÇ °á°ú¿Í µ¿ÀÏÇÏ´Ù.

    foreach $danvi (¡°º½¡±,¡±¿©¸§¡±,¡±°¡À»¡±,¡±°Ü¿ï¡±) {
      $count ++;
      print ¡°$count, $danvi¡¬n¡±; }

    ¹è¿­Àº @way = (); ¶Ç´Â %way = (); ¿Í °°ÀÌ ÃʱâÈ­ÇÒ ¼ö ÀÖ´Ù.

    ¹è¿­¿¡ ¿ø¼Ò¸¦ Ãß°¡ÇÏ°íÀÚ ÇÒ °æ¿ì push¸¦ ÀÌ¿ëÇÑ´Ù.
    push(¹è¿­¸í, Ãß°¡ÇÒ °ª);

    @way = (1, 2, 3, 4, 5);
    push(@way, 6);

    @way ¿¡´Â 6À̶ó´Â ¿ø¼Ò°¡ Ãß°¡µÈ´Ù.

 

9. ¹®ÀÚ¿­ ó¸®

    PerlÀº ¹®ÀÚ¿­ 󸮿¡ »ó´çÇÑ ´É·ÂÀ» °ú½ÃÇÏ°í ÀÖ´Ù.

    ¡° ¡±±âÈ£·Î ¹­ÀÎ »óÅ¿¡¼­ º¯¼ö¸¦ Á÷Á¢ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
    $way = ¡°CDE¡±;
    $way1 = ¡°AB$way¡±;  # ABCDE

    ƯÁ¤ ¹®ÀÚ¸¦ ÁöÁ¤ÇÑ ¼ö·®¸¸Å­ º¹Á¦Çϱâ À§ÇØ x ¶ó´Â Ư¼öÇÑ ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÑ´Ù.  ±¸ºÐ¼± Ãâ·ÂÀ̳ª ¿­À» ¸ÂÃß±â À§ÇÑ °ø¹é µî¿¡ ÀÚÁÖ »ç¿ëµÈ´Ù.
    $way2 = ¡°=¡± x 10;   # ==========

    ¹®ÀÚ¿­Áß ÀϺκÐÀ» ÃßÃâÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.  ½ÃÀÛÀ§Ä¡´Â 0ºÎÅÍÀÌ´Ù.

    substr(º¯¼ö, ½ÃÀÛÀ§Ä¡, ±ÛÀÚ¼ö);

    $way ¶ó´Â º¯¼öÀÇ °ªÁß Ã¹ ¹ø°ºÎÅÍ 2±ÛÀÚ¸¦ ÃßÃâÇÏ¿© $way3¿¡ ÀúÀåÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.
    $way3 = substr($way, 0, 2);   # CD

    ¹®ÀÚ¿­ Áß¿¡¼­ ƯÁ¤¹®ÀÚÀÇ Á¸Àç¿©ºÎ¸¦ ÆľÇÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.  ½ÇÇà°á°ú ¡°ÀÖÀ½¡±ÀÌ Ãâ·ÂµÈ´Ù.

    $way = ¡°º½ ¿©¸§ °¡À» °Ü¿ï¡±;
    if($way =~ /º½/) { print ¡°ÀÖÀ½¡¬n¡±; }
    else { print ¡°¾øÀ½¡¬n¡±; }

    ¹®ÀÚ¿­À» ġȯ(substitution)ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.  ½ÇÇà°á°ú ¡°ÀÌ°ÍÀÌ »ç¶ûÀϱî?¡±°¡ Ãâ·ÂµÈ´Ù.

    $way = ¡°ÀÌ°ÍÀÌ ¿ìÁ¤Àϱî?¡±;
    $way =~ s/¿ìÁ¤/»ç¶û/;
    print ¡°$way¡¬n¡±;

 

10. ½Ã½ºÅÛ ¸í·É

    `(¿ªµû¿ÈÇ¥)±âÈ£¸¦ ÀÌ¿ëÇÒ °æ¿ì ¿øÇÏ´Â ½Ã½ºÅÛ ¸í·ÉÀ» ½ÇÇàÇÒ ¼ö ÀÖÀ¸¸ç ½ÇÇà°á°ú¸¦ ¾ò¾î¿Í È°¿ëÇÒ ¼ö ÀÖ´Ù.

    $way = `ls -al`;
    print $way;

    ÀÌ·¸°Ô ÇÒ °æ¿ì shell¿¡¼­¿Í ¸¶Âù°¡Áö·Î ls ¸í·É°á°ú°¡ Ãâ·ÂµÈ´Ù.

    $bom = `w`;
    @user = (¡°way¡±, ¡°lawwal¡±, ¡°danvi¡±);
    foreach $user_id (@user) { &login_check($user_id); }

    sub login_check {
     ($id) = @_;
     if ($bom =~ /$id/) { print ¡°$id : On-Line¡¬n¡±; }
      else { print ¡°$id : Off-Line¡¬n¡±; }
    }

    ÇÊÀÚ°¡ »ç¿ëÁßÀÎ ¼­¹ö¿¡¼­ ¼Ò½º¸¦ ½ÇÇàÇÑ °á°ú ´ÙÀ½°ú °°ÀÌ Ãâ·ÂµÇ¾ú´Ù.

    way : On-Line
    lawwal : On-Line
    danvi : Off-Line

    ¸¸¾à °á°ú¸¦ ¾ò¾î¿Ã ÇÊ¿ä°¡ ¾ø°í ¸í·É¿¡ µû¶ó ºÎ¼öÀûÀÎ ÀÛ¾÷À» ÇØ¾ß ÇÑ´Ù¸é systemÀ̳ª exec¸¦ »ç¿ëÇÑ´Ù.  execÀÇ °æ¿ì ½ÇÇàÁßÀÎ Perl ÇÁ·Î±×·¥Àº Á¾·áµÇ°í ÁöÁ¤µÈ ¸í·É¾î°¡ ½ÇÇàµÈ´Ù´Â Â÷ÀÌÁ¡ÀÌ ÀÖ´Ù.

    print ¡°top ¸í·ÉÀ» ½ÇÇàÇÒ±î¿ä? [Y/n] ¡°;
    $input = <STDIN>;
    if ($input =~ /y/i) { system(¡°top¡±); }
    else { print ¡°Ãë¼ÒµÇ¾ú½À´Ï´Ù.¡¬n¡±; }

    ÁÙÀԷ¿¬»êÀÚÀÎ <> »çÀÌ¿¡ STDIN(Ç¥ÁØÀÔ·Â)ÀÌ µé¾î°¡°Ô µÇ¸é, Å°º¸µå·ÎºÎÅÍ °ªÀ» ÀԷ¹޴´Ù. ÀÔ·ÂµÈ °ª¿¡ Y ¶Ç´Â y°¡ Á¸ÀçÇÏ´Â °æ¿ì(i ¿É¼ÇÀº ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â´Ù.) top ¸í·ÉÀ» ½ÇÇàÇϵµ·Ï ÇÑ´Ù.

    À̹ø¿¡´Â ´ë·«ÀûÀÎ ¹®¹ýÀ» À§ÁÖ·Î ¼³¸íÇÏ¿´´Ù. ±âº»ÀûÀÎ ¹®¹ýÀ» Åä´ë·Î Çϳª¾¿ ÀÀ¿ë¹üÀ§¸¦ ´Ã·Á°¡´Ù º¸¸é ¿©·¯ºÐµµ ¾î·ÆÁö ¾Ê°Ô ¾²ÀÓ¼¼ ÀÖ´Â Perl ÇÁ·Î±×·¥À» °³¹ßÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

    ´ÙÀ½¿¡´Â À¥ÇÁ·Î±×·¥À» À§ÇÑ CGI·Î¼­ÀÇ PerlÀ» »ìÆ캸µµ·Ï ÇÏ°Ú´Ù.




¡ã top

homeÀ¸·Î...