1581, 5/80 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   asdzxc301
   ÆÞ1

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1149 [º¹»ç]


½ÃÀÛÇϱâ
Perl(ÆÞÀ̶ó°í Àд´Ù: ¿ªÀÚ)Àº ¹è¿ì±â ½±°í »ç¿ëÇϱâ ÆíÇÑ ¾ð¾î´Ù. PerlÀ» ½¬¿î ¾ð¾î¶ó°í ¸»ÇÏ´Â ÀÌÀ¯ ÁßÀÇ Çϳª´Â ¹Ù·Î Perl¿¡¼­´Â ÇÁ·Î±×·¡¸Ó°¡ Ç¥ÇöÇÏ°í ½ÍÀº °ÍÀ» ¼­¼úÇϱâ ÀÌÀü¿¡ ¸¹Àº °ÍÀ» ¼±¾ðÇÒ ÇÊ¿ä°¡ ¾ø´Ù´Â Á¡ÀÌ´Ù.
´Ù¸¥ ´ëºÎºÐÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­´Â ½ÇÁ¦·Î ½ÇÇàµÇ´Â ÇÁ·Î±×·¥ÀÇ Ã¹ ¹®ÀåÀ» ±â¼úÇϱâ Àü¿¡ µ¥ÀÌÅÍ Å¸ÀÔÀ̳ª º¯¼ö, ¼­ºê·çƾ(subroutine) µîÀ» ¹Ì¸® ¼±¾ðÇØ¾ß ÇÑ´Ù. ÀÌ·± Á¡µéÀº º¹ÀâÇÑ µ¥ÀÌÅÍ ±¸Á¶¸¦ ÇÊ¿ä·Î ÇÏ´Â ¾î·Á¿î ¹®Á¦µéÀ» ÇØ°áÇÏ´Â µ¥¿¡´Â µµ¿òÀÌ µÉ Áö ¸ð¸¥´Ù. ÀÌ·± Á¡µéÀº º¹ÀâÇÑ µ¥ÀÌÅÍ ±¸Á¶¸¦ ÇÊ¿ä·Î ÇÏ´Â ¾î·Á¿î ¹®Á¦µéÀ» ÇØ°áÇÏ´Â µ¥¿¡´Â µµ¿òÀÌ µÉ Áö ¸ð¸¥´Ù. ±×·¯³ª ¸ÅÀÏ ºÎµúÈ÷°Ô µÇ´Â °£´ÜÇÑ ¹®Á¦µéÀ» ÇØ°áÇÏ´Â µ¥¿¡´Â ´ÙÀ½°ú °°ÀÌ °£´ÜÈ÷ ±â¼úÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÈξÀ ³ªÀ» °ÍÀÌ´Ù.
print "Howdy, world!\n";
PerlÀÌ ¹Ù·Î ±×·¯ÇÑ ¾ð¾îÀÌ´Ù. ½ÇÁ¦·Î À§ÀÇ ¿¹Á¦´Â ÇϳªÀÇ ¿Ïº®ÇÑ ÇÁ·Î±×·¥À̸ç, ÀÌ ¿¹Á¦ ÇÁ·Î±×·¥À» Perl ÀÎÅÍÇÁ¸®ÅÍ·Î ½ÇÇàÇϸé È­¸é¿¡ "Howdy, world!"¶ó´Â ³»¿ëÀÌ Ãâ·ÂµÉ °ÍÀÌ´Ù.
¶ÇÇÑ Perl¿¡¼­´Â ÇÁ·Î±×·¡¸Ó°¡ Ç¥ÇöÇÏ°í ½ÍÀº °ÍÀ» ¼­¼úÇÑ ´ÙÀ½¿¡ ´õ ¸¹Àº °ÍÀ» ±â¼úÇÒ ÇÊ¿ä´Â ¾ø´Ù. ´ëºÎºÐÀÇ ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í ´Þ¸®, Perl¿¡¼­´Â ÇÁ·Î±×·¥ÀÇ ³¡±îÁö ¼ø¼­´ë·Î ½ÇÇàÇÏ´Â °ÍÀÌ ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀ» ¸¶Ä¡´Â ÀϹÝÀûÀÎ ¹æ¹ýÀÌ´Ù.
¹°·Ð ÇÁ·Î±×·¡¸ÓÀÇ ÇÊ¿ä¿¡ µû¶ó¼­ ¿øÇÏ´Â °æ¿ì¿¡´Â exit ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¸íÈ®ÇÏ°Ô ÇÁ·Î±×·¥ÀÇ Á¾·á¸¦ ³ªÅ¸³¾ ¼öµµ ÀÖ°í, ½ÇÁ¦·Î º¯¼ö³ª ¼­ºê·çƾÀ» »ç¿ëÇϱâ ÀÌÀü¿¡ ¹Ì¸® ¸íÈ®ÇÏ°Ô ¼±¾ðÇØ µÑ ¼öµµ ÀÖÀ¸¸ç, ¹Ì¸® ¼±¾ðÇؾ߸¸ Çϵµ·Ï ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù. ±×·¯³ª ÀÌ ¸ðµç °ÍÀº ÇÁ·Î±×·¡¸ÓÀÇ ¼±Åÿ¡ ´Þ¸° °ÍÀÌ´Ù. Perl¿¡¼­´Â »ç¿ëÀÚÀÇ ÀÚÀ¯°¡ ÃÖ´ëÇÑ º¸ÀåµÇ¾î ÀÖ´Ù.
À̹ۿ¡µµ ¿Ö PerlÀÌ ¹è¿ì°í »ç¿ëÇϱ⠽¬¿î ¾ð¾îÀÎÁö¿¡ °üÇÑ ¿©·¯ °¡Áö ÀÌÀ¯°¡ ÀÖÁö¸¸ Áö±Ý ±×·¯ÇÑ ÀÌÀ¯µéÀ» ÀÏÀÏÀÌ ³ª¿­ÇÒ ÇÊ¿ä´Â ¾øÀ» °Í °°´Ù. ÀÌ Ã¥À» ÀÐÀ¸¸é¼­ ÀÚ¿¬½º·´°Ô ±× ÀÌÀ¯¿¡ ´ëÇØ ¾Ë ¼ö Àֱ⠶§¹®ÀÌ´Ù. ¹°·Ð º¸´Ù ±íÀÌ µé¿©´Ù º¸¸é ¾î·Á¿î Á¡ÀÌ ÀÖÀ» ¼ö ÀÖ°ÚÁö¸¸, PerlÀº ±×·¯ÇÑ ¹®Á¦µéÀ» ÃÖ¼ÒÇÑÀÇ ³ë·ÂÀ¸·Î ÇØ°áÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁÙ °ÍÀÌ´Ù. ÀÌ Á¡ÀÌ ¹Ù·Î ´Ù¸¥ ¾ð¾î¿Í ´Þ¸® Perl ÇÁ·Î±×·¡¸Ó°¡ ¾ó±¼¿¡ ¹Ì¼Ò¸¦ ÀÒÁö ¾Ê°í ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ±î´ßÀÌ´Ù.
ÀÌ Àå¿¡¼­´Â PerlÀÇ °³¿ä¿¡ ´ëÇØ ´Ù·é´Ù. µû¶ó¼­ Perl¿¡ °üÇØ ¿Ïº®ÇÏ°Ô, ±×¸®°í ³í¸®ÀûÀ¸·Î ´Ù·çÁö´Â ¾ÊÀ» °ÍÀÌ´Ù. ÀÌ Àå¿¡¼­´Â ¸¶Ä¡ ÄÚ³¢¸® ´Ù¸®¸¦ ¸¸Áö´Â ½Ã°¢ Àå¾ÖÀο¡°Ô Perl¿¡ °üÇÑ ¸íÈ®ÇÑ ±×¸²À» Àü´ÞÇÑ´Ù´Â ±âºÐÀ¸·Î PerlÀÇ ´Ù¾çÇÑ ¸éÀ» º¸¿©ÁÙ °ÍÀÌ´Ù.



ÀÚ¿¬¾î¿Í Àΰø ¾ð¾î
¾ð¾î¶õ Àΰ£ÀÌ Àΰ£À» À§ÇØ ¸¸µç °ÍÀÌ´Ù. ±×·¯³ª ¿À´Ã³¯°ú °°Àº ÄÄÇ»ÅÍ ½Ã´ë¿¡¼­´Â ÀÌ·¯ÇÑ »ç½ÇÀÌ ¶§¶§·Î ÀØÇôÁú ¶§°¡ ÀÖ´Ù. PerlÀº ¸¶Ä¡ ÀÚ¿¬¾î·Î ÀÇ»ç¼ÒÅëÀ» ¿øÈ°ÇÏ°Ô ÇÏ´Â °Í°ú ºñ½ÁÇÏ°Ô µ¿ÀÛÇϵµ·Ï ¸¸µé¾îÁ³´Ù. ¾ð¾îÇÐÀûÀÎ Ãø¸é¿¡¼­ ¿©·¯ °¡Áö ¿ø¸®¸¦ ¿­°ÅÇÒ ¼öµµ ÀÖ°ÚÀ¸³ª, ¿©±â¼­ ¸»ÇÏ°í ½ÍÀº °ÍÀº ¾ð¾î¸¦ µðÀÚÀÎÇÒ ¶§ °¡Àå Áß¿äÇÑ Á¡Àº, ½¬¿î °ÍÀº ½¬¿ö¾ß Çϸ鼭 µ¿½Ã¿¡ ¾î·Á¿î °Íµµ Ç¥ÇöÀÌ °¡´ÉÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. ¾î¶»°Ô º¸¸é ´ç¿¬ÇÏ°Ô º¸ÀÌ´Â ÀÌ°ÍÀÌ ½ÇÁ¦·Î ¸¹Àº ÄÄÇ»ÅÍ ¾ð¾î¿¡¼­ ÁöÄÑÁöÁö ¾Ê°í ÀÖ´Â °ÍÀÌ ¿À´ÃÀÇ Çö½ÇÀÌ´Ù.
ÀÌ·¯ÇÑ Á¡¿¡¼­ º¸¸é ÀÚ¿¬¾î´Â ÈǸ¢ÇÏ´Ù°í ÇÒ ¼ö ÀÖ´Ù. Áï, »ç¶÷µéÀº ÀÚ¿¬¾î¸¦ ÀÌ¿ëÇØ ´Ü¼øÇÑ °Í°ú º¹ÀâÇÑ °ÍÀ» ²÷ÀÓ¾øÀÌ Àü´ÞÇÏ·Á ÇÏ°í ÀÖÀ¸¸ç, ±× °á°ú ¾ð¾î´Â ´Ü¼øÇÑ °Í°ú º¹ÀâÇÑ °ÍÀ» ¸ðµÎ Ç¥ÇöÇÒ ¼ö ÀÖµµ·Ï ÁøÈ­ÇØ ³ª°¡°í ÀÖ´Ù. Perlµµ ÀÚ¿¬ ¾ð¾î¿Í ¸¶Âù°¡Áö·Î ÁøÈ­ÇØ ³ª°¥ ¼ö ÀÖµµ·Ï °í¾ÈµÇ¾úÀ¸¸ç, ½ÇÁ¦·Î ÁøÈ­ÇØ °¡°í ÀÖ´Ù. ½ÇÁ¦·Î ¼ö ³â¿¡ °ÉÃļ­ ¸¹Àº »ç¶÷µéÀÌ PerlÀÇ ÁøÈ­¿¡ °øÇåÇØ ¿Ô´Ù.
´©±º°¡ ¡°¾ð¾îÇС±À̶ó´Â ´Ü¾î¸¦ ¸»ÇßÀ» ¶§ »ç¶÷µéÀº ´Ü¾î ȤÀº ¹®Àå, µÑ ÁßÀÇ Çϳª¸¦ »ý°¢ÇÒ °ÍÀÌ´Ù. ±×·¯³ª ÀÌ·¯ÇÑ ´Ü¾î³ª ¹®ÀåÀ̶ó´Â °Íµµ °á±¹Àº ¸»(´Ù½Ã ¸»ÇØ ¾ð¾î)À» ³ª´©±â À§ÇÑ ¹æ¹ý¿¡ ºÒ°úÇÏ´Ù. ÀÌ·¯ÇÑ ´Ü¾î³ª ¹®Àåµµ ´Ù½Ã Àǹ̸¦ °®°í ÀÖ´Â ´õ ÀÛÀº ´ÜÀ§·Î ÂÉ°³¾îÁöµçÁö, ȤÀº ¿©·¯ °³°¡ ¸ð¿©¼­ Àǹ̸¦ °®´Â ´õ Å« ´ÜÀ§¸¦ ÀÌ·ç±âµµ ÇÑ´Ù.  
ÀÚ¿¬¾î¿¡¼­´Â ¸í»ç, µ¿»ç µûÀ§ÀÇ ´Ù¾çÇÑ ´Ü¾î°¡ Á¸ÀçÇÑ´Ù. ´Ü¾î Çϳª¸¦ ¸»ÇßÀ» ¶§ ±×°ÍÀÌ ¸í»çÀÏ Áö¶óµµ ¹®Àå ³»ºÎ¿¡¼­ÀÇ À§Ä¡³ª ¾²ÀÓ»õ¿¡ µû¶ó¼­ µ¿»ç·Î, Çü¿ë»ç·Î ¶Ç´Â ºÎ»ç·Îµµ »ç¿ëµÉ ¼ö ÀÖ´Â °ÍÀÌ´Ù.
ÀÚ¿¬¾î¿Í ¸¶Âù°¡Áö·Î Perl¿¡¼­µµ ¾î¶² ´Ü¾î´Â ±× ´Ü¾î°¡ ³õ¿©Áø À§Ä¡¿¡ µû¶ó¼­ ´Ù¾çÇÑ ¹æ½ÄÀ¸·Î Çؼ®µÇ°í µ¿ÀÛÇÑ´Ù. ´Ù¸¸ PerlÀº ÇÁ·Î±×·¡¸Ó°¡ Áö±Ý ¹«¾ùÀ» Ç¥ÇöÇÏ°í ½ÍÀºÁö¸¦ ÀÌÇØÇϱâ À§ÇØ ÃÖ´ëÇÑ ³ë·ÂÇÑ´Ù´Â Á¡À» ¸í½ÉÇØ Áֱ⠹ٶõ´Ù. ´ëºÎºÐÀÇ °æ¿ì ¾î¶»°Ô Ç¥ÇöÇÏ´õ¶óµµ PerlÀº ÀÌÇØÇÏ°í ¹Þ¾ÆµéÀδÙ.(¹°·Ð ¸»µµ ¾ÈµÇ°Ô ÀÛ¼ºÇÑ °æ¿ì´Â Á¦¿ÜµÇ°ÚÁö¸¸ Perl Çؼ®±â(parser)´Â ¿µ¾î³ª ½º¿ÍÈú¸®¾îº¸´Ù´Â PerlÀ» ´õ Àß ÀÌÇØÇϱ⠶§¹®ÀÌ´Ù)
¸í»ç¸¦ »ý°¢ÇØ º¸ÀÚ. ¸í»ç´Â ƯÁ¤ÇÑ °´Ã¼(object)ÀÇ À̸§ÀÏ ¼öµµ ÀÖ°í, ÇöÀç ÂüÁ¶µÇ°í ÀÖ´Â »ç½ÇÀ» ¸íÈ®ÇÏ°Ô º¸¿©ÁÖÁö´Â ¾ÊÁö¸¸ ¾î´À °´Ã¼ Ŭ·¡½ºÀÇ À̸§À» ³ªÅ¸³¾ ¼öµµ ÀÖ´Ù. ´ëºÎºÐÀÇ ÄÄÇ»ÅÍ ¾ð¾î¿¡¼­´Â ÀÌ·¯ÇÑ ±¸ºÐÀ» ¶Ñ·ÇÀÌ Çϱ⠶§¹®¿¡ ƯÁ¤ÇÑ ¹«¾ùÀ» ¸»ÇÒ ¶§´Â °ª(value)À̶ó°í ÇÏ°í, ÀϹÝÀûÀÎ ¹«¾ùÀ» ¸»ÇÒ ¶§´Â º¯¼ö(variable)¶ó°í ÇÑ´Ù.
°ªÀ̶õ ¾î¶² °÷¿¡ Á¸ÀçÇÏ°í, ±× °ªÀÌ ¾îµð¿¡ ÀÖ´ÂÁö¸¦ ¾Ë°í ÀÖ´Â °ÍÀÓ¿¡ ºñÇØ, º¯¼ö´Â ±× º¯¼ö°¡ Á¸ÀçÇÏ´Â µ¿¾È¿¡ Çϳª ȤÀº ±× ÀÌ»óÀÇ ¿©·¯ °¡Áö °ªÀ» °¡Áú ¼ö ÀÖ´Ù´Â °ÍÀ» ¸»ÇÑ´Ù. µû¶ó¼­ ¾î¶² º¯¼ö¸¦ Çؼ®Çϱâ À§Çؼ­´Â ÇÁ·Î±×·¥ÀÇ ÁøÇà¿¡ µû¸¥ º¯¼ö °ªÀÇ º¯È­¸¦ ÃßÀûÇؾ߸¸ ÇÑ´Ù. ÀÌ·¯ÇÑ Çؼ®Àº ¿©·¯ºÐÀÇ µÎ³ú¿¡¼­³ª ȤÀº ÄÄÇ»ÅÍ°¡ ÇÏ°Ô µÉ °ÍÀÌ´Ù.


¸í»ç
º¯¼ö¶õ ¾î¶² °ªÀ» ÀúÀåÇÒ ¼ö ÀÖ´Â À̸§À» °¡Áö´Â Àå¼Ò·Î, ÀÌ·¯ÇÑ º¯¼ö¸¦ ÀÌ¿ëÇÏ¿© ƯÁ¤ÇÑ °ªÀ» ÀúÀåÇÑ ´ÙÀ½ ³ªÁß¿¡ ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù. ½ÇÁ¦·Î ÀÏ»ó »ýÈ°¿¡¼­µµ °³ÀÎÀûÀ¸·Î ¶Ç´Â °ø°øÀ» À§ÇÑ ¸ñÀûÀ¸·Î ´Ù¾çÇÑ Á¾·ùÀÇ º¸°ü Àå¼ÒµéÀ» ã¾Æº¼ ¼ö ÀÖ´Ù. ÀÌ·± Àå¼ÒµéÀº Àӽ÷Π»ç¿ëµÇ±âµµ ÇÏÁö¸¸ ¿µ±¸ÀûÀ¸·Î ÀÌ¿ëµÉ ¼ö ÀÖ´Â °÷µµ ÀÖ´Ù.
Àü»êÇп¡¼­´Â ÈçÈ÷ º¯¼öÀÇ ¹üÀ§(scope)¿¡ °üÇØ ¸¹ÀÌ ¾ð±ÞÇϱ⵵ ÇÑ´Ù. Perl¿¡¼­´Â ÀÌ·¯ÇÑ º¯¼öÀÇ ¹üÀ§¿¡ °üÇØ ´Ù¾çÇÑ ¹æ¹ýÀ¸·Î Á¢±ÙÇÏ°í ÀÖÀ¸¸ç ÀÌ·¯ÇÑ ³»¿ëÀº 3Àå¿¡¼­ ÀÚ¼¼È÷ ´Ù·ê °ÍÀÌ´Ù. (±Ã±ÝÇÑ ºÐÀº 3Àå¿¡¼­ "local"°ú "my"¿¡ °üÇÑ Ç׸ñÀ» »ìÆ캸±â ¹Ù¶õ´Ù.)
ÀÌ·¯ÇÑ º¯¼ö¸¦ ±¸ºÐÇÏ´Â µ¥ ´õ À¯¿ëÇÑ ¹æ¹ýÀº, ±× º¯¼ö°¡ ´ã°í ÀÖ´Â µ¥ÀÌÅÍÀÇ Á¾·ù¸¦ ±âÁØÀ¸·Î ±¸ºÐÇÏ´Â °ÍÀÌ´Ù. ¿µ¾î¿¡¼­¿Í ¸¶Âù°¡Áö·Î Perl¿¡¼­ °¡Àå ±âº»ÀûÀÎ ±¸ºÐÀº ´Ü¼ö µ¥ÀÌÅÍ¿Í º¹¼ö µ¥ÀÌÅÍÀÌ´Ù. ¹®ÀÚ¿­°ú ¼ýÀÚ´Â ´Ü¼ö µ¥ÀÌÅÍ¿¡ ¼ÓÇϸç, ¹®ÀÚ¿­À̳ª ¼ýÀÚÀÇ ¸®½ºÆ®(list)´Â º¹¼ö µ¥ÀÌÅÍÀÌ´Ù. (°´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö ºÎºÐ¿¡ µµ´ÞÇÏ°Ô µÇ¸é, ¸¶Ä¡ ¾î¶² ÇÑ ÇбÞÀÇ Çлýµéó·³ ƯÁ¤ °´Ã¼°¡ ¹Û¿¡¼­´Â ´Ü¼ö µ¥ÀÌÅÍ·Î º¸ÀÌÁö¸¸ °´Ã¼ ³»ºÎ¿¡¼­´Â º¹¼ö·Î º¸ÀÌ´Â ¿¹¸¦ º¸°Ô µÉ °ÍÀÌ´Ù.)
ÀÌ·¯ÇÑ ´Ü¼ö µ¥ÀÌÅ͸¦ ½ºÄ®¶ó(scalar)¶ó°í ºÎ¸£¸ç, º¹¼ö µ¥ÀÌÅ͸¦ ¹è¿­(array)À̶ó ÇÑ´Ù. ´ÙÀ½ ¿¹¿¡¼­ ¹®ÀÚ¿­À» ½ºÄ®¶ó º¯¼ö¿¡ ÀúÀåÇÏ´Â °ÍÀ» »ìÆ캸µµ·Ï ÇÏÀÚ.
$phrase = "Howdy, world!\n";              # º¯¼ö¸¦ ÁöÁ¤.
print $phrase;                                # º¯¼öÀÇ ³»¿ëÀ» Ãâ·Â.
À§ÀÇ ¿¹¿¡¼­ $phrase¶ó´Â º¯¼ö¸¦ ¹Ì¸® ¼±¾ðÇÏÁö ¾ÊÀº Á¡À» À¯ÀÇÇؼ­ º¸¾ÆÁֱ⠹ٶõ´Ù.  $´Â Perl·Î ÇÏ¿©±Ý phrase°¡ ½ºÄ®¶ó º¯¼ö, Áï ´Ü¼ö µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â °ÍÀ» ¾Ë°Ô ÇØ ÁØ´Ù. ÀÌ¿¡ ¹ÝÇØ ¹è¿­Àº @·Î ½ÃÀÛÇÑ´Ù. ´ÙÀ½À» ÀÌÇØÇÏ¸é ±â¾ïÇϱ⠽¬¿ï °ÍÀÌ´Ù.  $´Â ½ºÄ®¶ó(scalar)ÀÇ ¸Ó¸® ±ÛÀÚ S¸¦, @´Â ¹è¿­(array)ÀÇ ¸Ó¸® ±ÛÀÚ a¸¦ ³ªÅ¸³½ °ÍÀÌ´Ù.
ÀÌ ¹Û¿¡µµ Perl¿¡´Â Çؽ¬(hash)³ª ÇÚµé(handle), ŸÀԱ۷κê(typeglob) µî°ú °°Àº µ¥ÀÌÅÍ Å¸ÀÔÀÌ Á¸ÀçÇϸç, ½ºÄ®¶ó³ª ¹è¿­°ú ¸¶Âù°¡Áö·Î ƯÁ¤ÇÑ ¸Ó¸® ±ÛÀÚ¸¦ ÅëÇØ ±¸ºÐÇÏ°Ô µÈ´Ù. ´ÙÀ½ Ç¥¿¡ µ¥ÀÌÅÍ Å¸ÀÔÀ» ±¸ºÐÇÏ´Â ¸Ó¸® ±ÛÀÚ¸¦ Á¤¸®ÇØ µÎ¾ú´Ù.
Ÿ ÀÔ¸Ó¸® ±ÛÀÚ¿¹¼³ ¸í½ºÄ®¶ó$$centsƯÁ¤ÇÑ °ª(¼ýÀÚ³ª ¹®ÀÚ¿­)¹è¿­@@large¼ýÀÚ Å°¸¦ °¡Áø °ªÀÇ ¸®½ºÆ®Çؽ¬%%interest¹®ÀÚ¿­ Å°¸¦ °¡Áø °ªÀÇ ¸®½ºÆ®¼­ºê·çƾ&&howPerlÀÇ ½ÇÇà °¡´ÉÇÑ ÄÚµå ÀϺκÐTypeglob**struckstruckÀ̶ó°í À̸§ ºÙÀº ¸ðµç °Í[Ç¥ 1-1] º¯¼ö Ç¥±â¹ý
´Ü¼ö¼º(Singularities)
¾ÕÀÇ ¿¹¿¡¼­ º¸¾ÒµíÀÌ Perl¿¡¼­µµ ´Ù¸¥ ´ëºÎºÐÀÇ ÄÄÇ»ÅÍ ¾ð¾î¿¡¼­¿Í ¸¶Âù°¡Áö·Î = ¿¬»êÀÚ¸¦ ÀÌ¿ëÇØ ½ºÄ®¶ó º¯¼ö¿¡ »õ·Î¿î °ªÀ» ´ëÀÔÇÑ´Ù. ½ºÄ®¶ó º¯¼ö¿¡´Â Á¤¼ö, ½Ç¼ö, ¹®ÀÚ¿­, ±×¸®°í ´Ù¸¥ º¯¼ö³ª °´Ã¼¸¦ °¡¸®Å°´Â ·¹ÆÛ·±½º µî ´Ù¾çÇÑ ÇüÅÂÀÇ °ªÀ» ´ëÀÔÇÒ ¼ö ÀÖ´Ù.
Perl¿¡¼­´Â À¯´Ð½º(Unix) ½©¿¡¼­¿Í ¸¶Âù°¡Áö·Î ´Ù¾çÇÑ ¹æ½ÄÀ¸·Î ÀοëºÎÈ£¸¦ »ç¿ëÇÏ¿© ¿©·¯ °¡Áö ŸÀÔÀÇ °ªÀ» Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. °ã µû¿ÈÇ¥(") ¾È¿¡¼­´Â º¯¼ö »ðÀÔ(interpolation)°ú ¿ª½½·¡½¬(\) Ç¥ÇöÀÌ °¡´ÉÇÏ°í, ÀοëºÎÈ£(') ¾È¿¡¼­´Â ÀÌµé ¸ðµÎÀÇ º¯È¯ÀÌ ÀÌ·ç¾îÁöÁö ¾Ê´Â´Ù. ¿ª ÀοëºÎÈ£(`)´Â µû¿ÈÇ¥·Î µÑ·¯½Î¿© ÀÖ´Â ¿ÜºÎ ¸í·É(ȤÀº ÇÁ·Î±×·¥)À» ½ÇÇàÇϵµ·Ï ÇÑ ´ÙÀ½ ±× ¹Ýȯ°ªÀ» ¹ÞÀ» ¼ö ÀÖ°Ô ÇÑ´Ù. µû¶ó¼­ ¿ÜºÎ ¸í·ÉÀÇ ½ÇÇà °á°ú¸¦ ÇϳªÀÇ ¹®ÀÚ¿­·Î ¹ÞÀ» ¼ö ÀÖ´Ù.
$answer = 42;                       # Á¤¼ö
$pi = 3.14159265;                   # ½Ç¼ö
$avocados = 6.02e23;                # Áö¼ö Ç¥Çö
$pet = "Camel";                     # ¹®ÀÚ¿­
$sign = "I love my $pet";           # º¯¼ö »ðÀÔµÈ ¹®ÀÚ¿­
$cost = 'It costs $100';           # º¯¼ö »ðÀÔµÇÁö ¾ÊÀº ¹®ÀÚ¿­
$thence = $whence;                  # ´Ù¸¥ º¯¼öÀÇ ´ëÀÔ
$x = $moles * $avocados;    # Ç¥Çö½Ä
$cwd = `pwd`;                       # ¸í·É¾î ½ÇÇà ÈÄ ±× °á°ú¸¦ ¹®ÀÚ¿­·Î ÀúÀå
$exit = system("vi $x");            # ¸í·É¾î(system) ÀÇ ¹Ýȯ°ªÀ» ÀúÀå
$fido = new Camel "Fido";           # °´Ã¼
ƯÁ¤ÇÑ °ªÀ¸·Î ÃʱâÈ­µÇÁö ¾ÊÀº º¯¼ö´Â óÀ½¿¡ ³Î(Null) °ª("" ȤÀº 0)À¸·Î ÁöÁ¤µÇ¾ú´Ù°¡, ³ªÁß¿¡ »ç¿ëµÇ¾úÀ» ¶§ ÇØ´ç º¯¼ö°¡ »ç¿ëµÇ´Â À§Ä¡³ª ´ëÀԵǴ °ª¿¡ µû¶ó¼­ ¹®ÀÚ¿­À̳ª ¼ýÀÚ, ȤÀº Âü, °ÅÁþÀ» ³ªÅ¸³»´Â ºÒ¸°(Boolean) µî°ú °°Àº ŸÀÔÀÌ ÀÚµ¿À¸·Î °áÁ¤µÈ´Ù. Perl¿¡´Â ´Ù¾çÇÑ ¿¬»êÀÚ°¡ Á¸ÀçÇϸç ÀÌµé ¿¬»êÀÚ´Â °¢°¢ÀÇ Á¾·ù¿¡ µû¶ó ƯÁ¤ÇÑ ÇüÅÂÀÇ °ªÀ» ÆĶó¹ÌÅÍ(¸Å°³º¯¼ö)·Î ¿ä±¸ÇÑ´Ù. Perl¿¡¼­´Â ÇöÀçÀÇ ±¸¹®(context)¿¡ ¸Âµµ·Ï ÀÚµ¿À¸·Î µ¥ÀÌÅ͸¦ ÇÊ¿äÇÑ ÇüÅ·Πº¯È¯Çϴµ¥, ¾Æ·¡ÀÇ ¿¹¿¡¼­ »ìÆ캸±â·Î ÇÏÀÚ.
$camels = '123';
print $camels + 1, "\n";
À§¿¡¼­ ù° ÁÙ¿¡ ÀÇÇØ $camels´Â ¹®ÀÚ¿­ º¯¼ö·Î ÀÚµ¿ ÁöÁ¤µÈ´Ù. ¹®ÀÚ¿­ °ªÀÎ '123'ÀÌ ´ëÀԵǾúÀ¸¹Ç·Î. µÑ° ÁÙ¿¡¼­ $camels´Â ¼ýÀÚ 1À» ´õÇϱâ À§ÇØ ÀÚµ¿À¸·Î ¹®ÀÚ¿­¿¡¼­ ¼ýÀÚ 123À¸·Î º¯È¯µÇ¾î 124(123+1)ÀÇ ¼ýÀÚ °ªÀ» °¡Áø ÈÄ, ´Ù½Ã ¹®ÀÚ¿­ '124'·Î º¯È¯µÇ¾î È­¸é¿¡ Ãâ·ÂµÈ´Ù. ÁٹٲÞÀ» ³ªÅ¸³»´Â ¡°\n"Àº ¾ÖÃÊ¿¡ ¹®ÀÚ¿­À̾ú±â ¶§¹®¿¡ Ãâ·ÂÇϱâ À§ÇØ ´õ ÀÌ»óÀÇ º¯È¯Àº ÀÌ·ç¾îÁöÁö ¾Ê´Â´Ù.  
¿©±â¼­ ÁÖÀÇÇÒ Á¡Àº ÁÙ¹Ù²Þ ±âÈ£¸¦ ³ªÅ¸³¾ ¶§ °ã µû¿ÈÇ¥¸¦ »ç¿ëÇÏ¿´´Ù´Â °ÍÀÌ´Ù. ¸¸¾à Ȭ µû¿ÈÇ¥¸¦ »ç¿ëÇÏ¿© ¡®\n'°ú °°ÀÌ ³ªÅ¸³¾ °æ¿ì, ÀÌ°ÍÀº ÁٹٲÞÀ» ³ªÅ¸³»´Â °ÍÀÌ ¾Æ´Ï¶ó ´Ü¼øÈ÷ ¡°\¡°¿Í ¡°n¡° µÎ ±ÛÀÚ·Î ÀÌ·ç¾îÁø ¹®ÀÚ¿­À» Ç¥ÇöÇÏ´Â °ÍÀÌ´Ù. °ã µû¿ÈÇ¥¿Í Ȭ µû¿ÈÇ¥´Â ƯÁ¤ÇÑ ÇüÅÂÀÇ ±¸¹®À» ³ªÅ¸³»±â À§ÇØ »ç¿ëÇϸç, µû¿ÈÇ¥ ¾È¿¡¼­ÀÇ »ðÀÔ, ġȯÀº µÑ Áß¿¡ ¾î´À °ÍÀ» »ç¿ëÇß´ÂÁö¿¡ µû¶ó ´Ù¸£°Ô ³ªÅ¸³­´Ù.
º¹¼ö¼º(Pluralities)
¿©·¯ °³ÀÇ °ªÀ» Çѵ¥ ¹­¾î¼­ ÇÑ ¹ø¿¡ ±× °ªÀ» ÀúÀåÇÒ ÇÊ¿ä°¡ ÀÖÀ» ¶§°¡ ÀÖ´Ù. Perl¿¡¼­´Â ÀÌ·± °æ¿ì µÎ °¡Áö ÇüÅÂÀÇ º¯¼ö ŸÀÔÀ» Á¦°øÇÑ´Ù. ¹è¿­(array)°ú Çؽ¬(hash)°¡ ¹Ù·Î ±×°ÍÀÌ´Ù. ¸¹Àº °æ¿ì À̵éÀº ½ºÄ®¶ó¿Í ºñ½ÁÇÏ°Ô Ãë±ÞµÈ´Ù. ¹è¿­À̳ª Çؽ¬ º¯¼ö¿¡ ¾î¶² °ªµéÀ» ´ëÀÔÇÏ·Á¸é ´ëÀÔ½ÄÀÇ ¿ìÃø¿¡ ¸®½ºÆ® ±¸¹®(list context)¿¡ ÇØ´çÇÏ´Â °ÍÀ» Àû¾î ÁÖ¾î¾ß ÇÑ´Ù.
¾î¶² °ªµéÀ» ¼ýÀÚ À妽º¿¡ ÀÇÇØ ±¸ºÐÇÏ°í ½ÍÀ» °æ¿ì¿¡´Â ¹è¿­À» »ç¿ëÇÏ°í, À̸§ À妽º¿¡ ÀÇÇØ ±¸ºÐÇÒ °æ¿ì¿¡´Â Çؽ¬¸¦ »ç¿ëÇÑ´Ù. À̵é ŸÀÔÀº ¼­·Î »óÈ£ º¸¿ÏÀûÀÌ´Ù.
¹è¿­ ¹è¿­Àº ½ºÄ®¶ó °ªÀ» ¼ø¼­´ë·Î ³ª¿­ÇÑ ¸®½ºÆ®·Î¼­ ¸®½ºÆ® ³»ÀÇ ¼ø¼­(index)¿¡ µû¶ó ±× °ªÀ» ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù. ¹è¿­ÀÇ ¿ä¼Ò·Î´Â ¼ýÀÚ³ª ¹®ÀÚ¿­, ȤÀº ÀÌ µÎ °¡Áö°¡ ¼¯ÀÎ ÇüÅÂÀÇ °ªÀÌ ¿Ã ¼ö ÀÖ´Ù. »ç½Ç ÀÌµé ¿Ü¿¡µµ ¹è¿­ÀÇ ¿ä¼Ò¿¡´Â ´Ù¸¥ ¸®½ºÆ®ÀÇ ·¹ÆÛ·±½º°¡ ¿Ã ¼öµµ ÀÖ´Ù. ÀÌ·± °æ¿ì¿¡ ´ëÇؼ­´Â 4Àå¿¡¼­ ÀÚ¼¼È÷ »ìÆ캸±â·Î ÇÏÀÚ. ¹è¿­¿¡ ¸®½ºÆ® °ªÀ» ´ëÀÔÇÏ·Á°í ÇÒ ¶§¿¡´Â °ýÈ£¸¦ »ç¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³½´Ù.
@home = ("couch", "chair", "table", "stove");
¿ªÀ¸·Î @homeÀ» ´ëÀÔ½ÄÀÇ ¿ìº¯¿¡ À§Ä¡ÇÏ´Â °æ¿ì¿Í °°ÀÌ ¸®½ºÆ® ±¸¹®¿¡¼­ »ç¿ëÇÒ °æ¿ì, ´ÙÀ½°ú °°ÀÌ ÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ¶§ Áº¯¿¡´Â 4°³ÀÇ ½ºÄ®¶ó °ªÀ» °®´Â º¯¼ö¸¦ ÁöÁ¤ÇÏ¸é µÈ´Ù.
($potato, $lift, $tennis, $pipe) = @home;
ÀÌ°ÍÀ» ¸®½ºÆ® ´ëÀÔ(list assignment)À̶ó°í ÇÑ´Ù. ÀÌ·¯ÇÑ ´ëÀÔÀº º´·Ä·Î ÁøÇàµÇ¹Ç·Î ´ÙÀ½°ú °°ÀÌ µÎ º¯¼ö °ªÀÇ ±³È¯ÀÌ ÀÚ¿¬½º·´°Ô ÀÌ·ç¾îÁø´Ù.
($alpha,$omega) = ($omega,$alpha);
C¿¡¼­¿Í ¸¶Âù°¡Áö·Î, ¹è¿­ÀÇ À妽º´Â 0¿¡¼­ºÎÅÍ ½ÃÀÛÇÑ´Ù. µû¶ó¼­ 4°³ÀÇ ±¸¼º ¿ä¼Ò¸¦ °®°í ÀÖ´Â ¹è¿­¿¡¼­´Â À妽ºÀÇ °ªÀÌ 0, 1, 2, 3ÀÌ µÈ´Ù. ¹è¿­¿¡¼­ À妽º´Â [ ] ±âÈ£ ¾È¿¡ À§Ä¡Çϸç, ¹è¿­ÀÇ Æ¯Á¤ÇÑ ¿ä¼Ò¸¦ ÂüÁ¶ÇÏ°í ½ÍÀ» °æ¿ì¿¡´Â $home[n]°ú °°ÀÌ ¹è¿­ÀÇ À̸§°ú À妽º¸¦ µ¿½Ã¿¡ ÁöÁ¤ÇØ¾ß ÇÑ´Ù. ¾Æ·¡ÀÇ ¿¹¸¦ Âü°íÇϱ⠹ٶõ´Ù. ¹è¿­ÀÇ ±¸¼º ¿ä¼Ò ÀÚü´Â ½ºÄ®¶ó °ªÀ̹ǷΠÀÌ °æ¿ì ƯÁ¤ ¿ä¼Ò¸¦ ³ªÅ¸³¾ ¶§ ¹è¿­ À̸§ ¾Õ¿¡ ¹Ýµå½Ã $ ¸¦ ºÙ¿©¾ß ÇÑ´Ù.
¹è¿­¿¡ °ªÀ» ´ëÀÔÇÒ ¶§, À§ÀÇ ¿¹Ã³·³ ÇѲ¨¹ø¿¡ ÇÏÁö ¾Ê°í ÇÑ ¹ø¿¡ Çϳª¾¿ ´ëÀÔÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
$home[0] = "couch";
$home[1] = "chair";
$home[2] = "table";
$home[3] = "stove";
¹è¿­Àº ±× ¿ä¼ÒÀÇ ¼ø¼­°¡ Á¤ÇØÁ® ÀÖ´Â »óÅÂÀ̹ǷÎ, push, pop°ú °°Àº ½ºÅà ¿¬»ê µî ´Ù¾çÇÑ ¿¬»êÀÚ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ½ºÅÃÀº °á±¹ ÀÔ/Ãâ·Â ¼ø¼­°¡ Á¤ÇØÁ® ÀÖ´Â ¸®½ºÆ®¶ó°í ÇÒ ¼ö ÀÖ´Ù. Perl¿¡¼­´Â ¸®½ºÆ®ÀÇ ³¡À» ½ºÅÃÀÇ ÃÖ»ó´Ü(top)À¸·Î °£ÁÖÇÑ´Ù.
Çؽ¬ Çؽ¬´Â ¹è¿­°ú´Â ´Þ¸® ¼ýÀÚ·Î µÈ À妽º°¡ ¾Æ´Ñ ÀÓÀÇÀÇ ½ºÄ®¶ó À妽º¿¡ ÀÇÇØ ÂüÁ¶µÇ´Â, ¼ø¼­°¡ Á¤ÇØÁ® ÀÖÁö ¾ÊÀº ½ºÄ®¶ó ¸®½ºÆ®ÀÌ´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î ÈçÈ÷ Çؽ¬¸¦ ÀÏÄþî Á¶ÇÕ ¹è¿­(associative array)À̶ó ºÎ¸£±âµµ ÇÑ´Ù. ÀÌ°ÍÀ» Çؽ¬¶ó°í À̸§ ºÙÀÎ ÀÌÀ¯ Áß Çϳª·Î, ¹è¿­°ú ´Þ¸® ¿ä¼ÒÀÇ ¼ø¼­°¡ Á¤ÇØÁ® ÀÖÁö ¾Ê´Ù´Â °ÍÀÌ´Ù.(Perl ³»ºÎ¿¡¼­ Çؽ¬¸¦ ±¸ÇöÇϱâ À§Çؼ­´Â Çؽ¬ Ç¥ ÂüÁ¶(hash table lookup)¶ó´Â ¹æ¹ýÀ» »ç¿ëÇÏ°í ÀÖ´Ù.) ¿ä¼ÒÀÇ ¼ø¼­°¡ Á¤ÇØÁ® ÀÖÁö ¾ÊÀ¸¹Ç·Î, ¾Õ¼­ ¸»ÇÑ ¹è¿­ÀÇ °æ¿ì¿Í ´Þ¸® Çؽ¬¿¡¼­´Â push³ª pop°ú °°Àº ½ºÅà ¿¬»êÀÚ¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù. Çؽ¬¿¡´Â ½ÃÀÛÀ̳ª ³¡À» ¾Ë¸®´Â °ªÀÌ ¾ø´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í Çؽ¬´Â ¸Å¿ì Áß¿äÇÏ¸ç »ó´çÈ÷ À¯¿ëÇÑ °ÍÀÓ¿¡ Ʋ¸²¾ø´Ù.
Çؽ¬ÀÇ ±¸¼º ¿ä¼Ò¸¦ ÂüÁ¶ÇÒ ¶§ »ç¿ëµÇ´Â Å°(key) °ªÀº ¹è¿­°ú ´Þ¸® ±× ±¸¼º ¿ä¼ÒÀÇ À§Ä¡¿¡ µû¶ó ÀÚµ¿À¸·Î Á¤ÇØÁö´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î, óÀ½ Çؽ¬¸¦ ÁöÁ¤ÇÒ ¶§ Çؽ¬ ±¸¼º ¿ä¼ÒÀÇ °ª°ú Å° °ªÀ» °°ÀÌ Àû¾î ÁÖ¾î¾ß ÇÑ´Ù. ¹°·Ð Çؽ¬¸¦ ¹è¿­°ú °°Àº ¹æ¹ýÀ¸·Î ÃʱⰪÀ» ÁöÁ¤ÇÒ ¼öµµ ÀÖÁö¸¸, ±× °ªµéÀÌ ¸ðµÎ Çؽ¬ÀÇ ±¸¼º¿ä¼Ò °ªÀ¸·Î µé¾î°¡´Â °ÍÀÌ ¾Æ´Ï¶ó, ¾Õ¿¡¼­ºÎÅÍ ¼ø¼­´ë·Î Å°/¿ä¼Ò °ªÀÇ ½ÖÀ¸·Î ´ëÀԵȴٴ °ÍÀ» ¸í½ÉÇÏ¿©¾ß ÇÒ °ÍÀÌ´Ù. ¸¸¾à 3±ÛÀÚ·Î Ãà¾àµÈ ÇüÅÂÀÇ ¿äÀÏ ¸íÀ» ¿ø·¡ ¿äÀÏ ¸íÀ¸·Î º¯È¯Çϵµ·Ï Çϱâ À§ÇÑ Çؽ¬¸¦ ¸¸µå´Â °æ¿ì ¾Æ·¡ ¿¹¿Í °°ÀÌ ÇÏ¸é µÈ´Ù.
%longday = ("Sun", "Sunday", "Mon", "Monday", "Tue", "Tuesday",
            "Wed", "Wednesday", "Thu", "Thursday", "Fri",
            "Friday", "Sat", "Saturday");
±×·¯³ª À§¿Í °°ÀÌ ÇÒ °æ¿ì Å° °ª°ú ¿ä¼Ò °ªÀÇ ±¸ºÐÀÌ ÇÑ ´«¿¡ µé¾î¿ÀÁö ¾ÊÀ¸¹Ç·Î, Perl ¿¡¼­´Â Çؽ¬¸¦ Á¤ÀÇÇÒ ¶§ => ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¿© Å°¿Í ±× °ªÀ» ÇÑ ½ÖÀ¸·Î ¹­¾î ÁöÁ¤ÇÒ ¼ö ÀÖµµ·Ï ÇÏ°í ÀÖ´Ù.
%longday = (
    "Sun" => "Sunday",
    "Mon" => "Monday",
    "Tue" => "Tuesday",
    "Wed" => "Wednesday",
    "Thu" => "Thursday",
    "Fri" => "Friday",
    "Sat" => "Saturday",
);
¾Õ¼­ ¹è¿­¿¡¼­¿Í ¸¶Âù°¡Áö·Î, Çؽ¬ º¯¼ö¿¡ Å°/°ªÀÇ ¸®½ºÆ®¸¦ ´ëÀÔÇÏ´Â °Í°ú ¹Ý´ë ¹æÇâÀ¸·Î ´ëÀÔÇÒ ¼öµµ ÀÖ´Ù. Çؽ¬´Â keys ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© Çؽ¬ÀÇ Å°¸¸ »Ì¾Æ³¾ ¼öµµ ÀÖÀ¸¸ç, »Ì¾Æ³½ Å°¸¦ sort ÇÔ¼ö¸¦ ÀÌ¿ëÇØ ¿øÇÏ´Â ¼ø¼­´ë·Î ³ª¿­ÇÒ ¼öµµ ÀÖ´Ù. ÀÚ¼¼ÇÑ ¼³¸íÀº ³ªÁß¿¡ Çϱâ·Î ÇÏÀÚ.
Çؽ¬ÀÇ Æ¯Á¤ ¿ä¼Ò¸¦ ÂüÁ¶ÇÏ·Á¸é Çؽ¬ÀÇ Å°¸¦ { }¸¦ »ç¿ëÇÏ¿© ¹è¿­ÀÇ À妽ºÃ³·³ ÂüÁ¶ÇÏ¸é µÈ´Ù. À§ÀÇ ¿¹¿¡¼­ WedÅ°¿¡ ÇØ´çÇÏ´Â °ªÀ» ÂüÁ¶Çϱâ À§Çؼ­´Â $longday{Wed} ¿Í °°ÀÌ ÇÏ¸é µÈ´Ù. ¾Õ¼­ ¹è¿­¿¡¼­¿Í ¸¶Âù°¡Áö·Î Çؽ¬ÀÇ Æ¯Á¤ ±¸¼º ¿ä¼ÒÀÇ °ªÀº ½ºÄ®¶óÀ̹ǷΠ%°¡ ¾Æ´Ï¶ó $¸¦ ¾Õ¿¡ ºÙ¿©¾ß ÇÑ´Ù´Â °ÍÀ» ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù.


µ¿»ç
ÀϹÝÀûÀÎ ´Ù¸¥ ÄÄÇ»ÅÍ ¾ð¾î¿Í ¸¶Âù°¡Áö·Î Perl¿¡¼­µµ ´ëºÎºÐÀÇ µ¿»ç¿¡ ÇØ´çÇÏ´Â °ÍÀº ¸í·É¾îÀÌ´Ù. ÀÌµé ¸í·É¾î´Â Perl·Î ÇÏ¿©±Ý ƯÁ¤ÇÑ ¹«¾ð°¡¸¦ Çϵµ·Ï Áö½ÃÇÑ´Ù. ÀÚ¿¬¾î¿¡¼­ µ¿»ç·Î ½ÃÀÛÇÏ´Â ¹®ÀåÀÌ ¸í·É¹®ÀÎ °Í°ú ¸¶Âù°¡Áö·Î Perl¿¡¼­µµ µ¿»ç·Î ½ÃÀ۵Ǵ ¹®ÀåÀº ƯÁ¤ÇÑ µ¿ÀÛÀ» Çϵµ·Ï Áö½ÃÇÏ´Â ¹®ÀåÀÌ´Ù. °¡Àå ¸¹ÀÌ º¼ ¼ö ÀÖ´Â ¿¹´Â ¾Æ·¡¿Í °°Àº print ¸í·É¾îÀÏ °ÍÀÌ´Ù.
print "Adam's wife is ", $wife{'Adam'}, ".\n";
À§¿Í °°ÀÌ Æ¯Á¤ÇÑ ÀÛ¾÷À» Áö½ÃÇÏ´Â ¹®Àå ¿Ü¿¡µµ Perl¿¡´Â ´Ù¸¥ ÇüÅÂÀÇ µ¿»ç°¡ Á¸ÀçÇϸç, À̵éÀº Á¶°Ç¹®¿¡¼­ »ç¿ëµÇ°Å³ª ÀÔ·ÂµÈ °ªÀ» ´Ù¸¥ ÇüÅÂÀÇ Ãâ·Â °ªÀ¸·Î º¯È¯ÇÏ´Â µîÀÇ ÀÏÀ» ÇÑ´Ù. Perl¿¡¼­´Â ÀÌ·¯ÇÑ µ¿»ç¸¦ ÇÔ¼ö(function)¶ó°í ºÎ¸¥´Ù.
Perl¿¡¼­ ¹Ì¸® Á¤ÀǵÈ(built-in) ÇÔ¼öÀÇ ¿¹ Áß Çϳª´Â ´ÙÀ½°ú °°Àº Áö¼ö ÇÔ¼öÀÌ´Ù.
$e = exp(1);                # 2.718281828459
Perl¿¡¼­´Â ÇÁ·Î½ÃÁ®(procedure)¿Í ÇÔ¼ö¸¦ ¶Ñ·ÇÀÌ ±¸ºÐÇÏ°í ÀÖÁö´Â ¾Ê´Ù. ÇÊ¿ä¿¡ µû¶ó¼­ ÀÌ µÎ °¡Áö ¿ë¾î¸¦ ¹ø°¥¾Æ°¡¸é¼­ »ç¿ëÇÒ °ÍÀÌ´Ù. ¶ÇÇÑ ¼­ºê·çƾÀ̳ª ¿¬»êÀÚ(operator)µîµµ Perl¿¡¼­ÀÇ µ¿»ç¿¡ ¼ÓÇÏ´Â °ÍµéÀÌ´Ù. À̵éÀ» ¹«¾ùÀ̶ó°í ºÒ·¯µµ ÁÁ´Ù. À̵éÀº ¸ðµÎ ±× °ªÀÌ Àǹ̰¡ ÀÖµçÁö ¾øµçÁö ¾î¶² °ªÀ» ¹ÝȯÇϸç, ¹ÝȯµÈ °ªÀ» »ç¿ëÇÏµç ¾ÈÇÏµç ±×°ÍÀº ÀüÀûÀ¸·Î ÇÁ·Î±×·¡¸ÓÀÇ ÀÚÀ¯´Ù.
¾ÕÀ¸·Î ÀÌ Ã¥¿¡¼­´Â Perl°ú ÀÚ¿¬¾îÀÇ ´àÀº Á¡À» ¸î °¡Áö ´õ º¸°Ô µÉ °ÍÀÌ´Ù. ¹°·Ð ÀÚ¿¬¾î¿Í ºñ±³ÇÏ´Â °Í ¿Ü¿¡µµ PerlÀ» º¸´Â ¶Ç ´Ù¸¥ ¹æ¹ýÀÌ ¾ó¸¶µçÁö ÀÖÀ» ¼ö ÀÖ´Ù. ´õÇϱâ, »©±â, Áö¼öÇÔ¼ö¿Í °°Àº ¼öÇÐÀûÀÎ ¹®Á¦ ¿Ü¿¡µµ, Á¦¾î³ª ÇÁ·ÎÅäŸÀÔ(prototype)À» ¸¸µå´Âµ¥, ÅؽºÆ®³ª ¸®½ºÆ®¸¦ ó¸®ÇÏ´Â ¾ð¾î·Î, ±×¸®°í °´Ã¼ÁöÇâ ¾ð¾î µî ¾ó¸¶µçÁö ´Ù¸¥ ÂÊÀ¸·Îµµ PerlÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
±×·¯³ª PerlÀº µ¿½Ã¿¡ Æò¹üÇÑ ÄÄÇ»ÅÍ ¾ð¾îÀÇ ÇϳªÀÌ´Ù. ¾ÕÀ¸·Î º¼ ¿¹°¡ ¹Ù·Î ±×·¯ÇÑ °Í¿¡ °üÇÑ ³»¿ëÀÌ´Ù.



¼ºÀûó¸® ¿¹Á¦
ÇÑ ÇбÞÀÇ ¼ºÀûÀ» ó¸®ÇÏ´Â °æ¿ì¸¦ »ý°¢ÇØ º¸µµ·Ï ÇÏÀÚ. ÀÌ ¶§ °¢ Çлýº° Á¡¼ö¸¦ ±â·ÏÇÑ ÅؽºÆ® ÆÄÀÏÀ» grade¶ó°í ÇÏ°í, ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î ÀÌ·ç¾îÁ® ÀÖ´Ù°í ÇÏÀÚ.
Noel 25
Ben 76
Clementine 49
Norm 66
Chris 92
Doug 42
Carol 25
Ben 12
Clementine 0
Norm 66
...
ÀÌ °æ¿ì ¾Æ·¡ ½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇÏ¿© Àüü ÇлýÀÇ ÃÑÁ¡, °¢ ÇлýÀÇ Æò±ÕÀ» ±¸ÇÑ ´ÙÀ½ Çлý À̸§À» ¾ËÆĺª ¼øÀ¸·Î Ãâ·ÂÇÒ ¼ö ÀÖ´Ù. ÀÌ ÇÁ·Î±×·¥¿¡¼­´Â °°Àº ¹Ý¿¡ µ¿¸íÀÌÀÎÀÌ ¾ø´Ù°í °¡Á¤ÇÑ´Ù. Áï, °°Àº À̸§ÀÌ µÎ ¹ø ³ª¿À¸é ±×°ÍÀº ±× ÇлýÀÇ ¶Ç ´Ù¸¥ Á¡¼ö¶ó°í °¡Á¤ÇÑ´Ù´Â °ÍÀÌ´Ù.
¾Æ·¡ ±×¸²¿¡¼­ BASIC ¾ð¾î¿Í °°Àº Çà ¹øÈ£´Â ÆíÀÇ»ó ºÙÀÎ °ÍÀ¸·Î¼­ ÇÁ·Î±×·¥ÀÇ ÀϺθ¦ ¸»ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù.
1  #!/usr/bin/perl
2
3  open(GRADES, "grades") or die "Can't open grades: $!\n";
4  while ($line = <GRADES>) {
5      ($student, $grade) = split(" ", $line);
6      $grades{$student} .= $grade . " ";
7  }
8
9  foreach $student (sort keys %grades) {
10      $scores = 0;
11      $total = 0;
12      @grades = split(" ", $grades{$student});
13      foreach $grade (@grades) {
14          $total += $grade;
15          $scores++;
16      }
17      $average = $total / $scores;
18      print "$student: $grades{$student}\tAverage: $average\n";
19  }
Perl¿¡ ´ëÇØ °è¼Ó ¾Ë¾Æº¸±â Àü¿¡, À§ÀÇ ¿¹Á¦ ÇÁ·Î±×·¥¿¡¼­ ³ª¿Â ¸î °¡Áö¿¡ ´ëÇØ Á» ´õ ÀÚ¼¼È÷ ¾Ë¾Æº¸±â·Î ÇÏÀÚ. ¸¸¾à ´Ù¸¥ ÁÖÁ¦¿¡ °üÇØ ´Ù·ç±â¸¦ ¿øÇÏ´Â »ç¶÷Àº ´Ù¸¥ ÀåÀ¸·Î ¿Å°Ü °¡µµ ÁÁ´Ù.


¾î¶»°Ô ½ÇÇàµÇ³ª
¿©·¯ºÐ Áß¿¡´Â Perl ÇÁ·Î±×·¥À» ¾î¶»°Ô ½ÇÇà½ÃÄÑ¾ß ÇÒ Áö ¸ð¸£´Â »ç¶÷µµ ÀÖÀ» °ÍÀÌ´Ù.  ±× ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù. Áï, ¿©·¯ºÐÀÌ ÀÛ¼ºÇÑ Perl ÇÁ·Î±×·¥(ȤÀº ½ºÅ©¸³Æ®)¸¦ perl ÀÎÅÍÇÁ¸®ÅÍ(´ë¼Ò¹®ÀÚ ±¸ºÐ¿¡ ÁÖÀÇÇÒ °Í)¿¡ Àü´ÞÇÏ¿© ½ÇÇàÇϵµ·Ï ÇÏ´Â °ÍÀÌ´Ù. PerlÀÇ ½½·Î°ÇÀº ´ÙÀ½°ú °°´Ù.
¾î¶² ÀÏÀ» ÇÏ´Â µ¥¿¡´Â ¿©·¯ °¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. (There's More Than One Way To Do It)
Perl ÀÎÅÍÇÁ¸®ÅÍÀÎ perlÀ» ½ÇÇàÇÏ´Â ¹æ¹ý Áß Ã¹ ¹ø° ¹æ¹ýÀº ¸í·É¾î Çà¿¡¼­ ´Ü¼øÈ÷ perlÀ» ½ÇÇàÇÏ´Â °ÍÀÌ´Ù. ¸¸¾à UNIX »ç¿ëÀÚÀÎ °æ¿ì -e ½ºÀ§Ä¡¸¦ »ç¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇÏ¸é µÈ´Ù.(¾Æ·¡ ¿¹¿¡¼­ % Ç¥½Ã´Â ½© ÇÁ·ÒÇÁÆ®¸¦ ³ªÅ¸³½ °ÍÀ¸·Î ŸÀÌÇÎÇÒ ÇÊ¿ä´Â ¾ø´Ù.)
% perl -e 'print "Hello, world!\n";'
UNIX ¿ÜÀÇ ´Ù¸¥ ¿î¿µÃ¼Á¦¿¡¼­´Â Á¤È®ÇÏ°Ô À§ ¹®Àå°ú °°Áö ¾ÊÀ» ¼öµµ ÀÖ´Ù. ±×·¯³ª ±âº»ÀûÀÎ ¿ø¸®´Â ¸ðµÎ °°´Ù.
À§ÀÇ ¿¹¿Í °°Àº ÇÑ ÁÙÂ¥¸® °£´ÜÇÑ °Í º¸´Ù ±ä ½ºÅ©¸³Æ®ÀÇ °æ¿ì, ÀϹÝÀûÀÎ ¹®¼­ ÆíÁý±â·Î ÀÛ¼ºÇÑ ´ÙÀ½ ÆÄÀÏ·Î ÀúÀåÇÏ°í ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇÏ¸é µÈ´Ù. (½ºÅ©¸³Æ® ÆÄÀÏÀÇ À̸§ÀÌ gradationÀÎ °æ¿ì)
% perl gradation
¹°·Ð ¿©ÀüÈ÷ perl ÀÎÅÍÇÁ¸®Å͸¦ Á÷Á¢ È£ÃâÇϱâ´Â ÇßÁö¸¸, ÀÌ °æ¿ì´Â À§ÀÇ ¿¹¿Í´Â ´Þ¸® ¸í·É¾î Çà¿¡ Perl ¹®ÀåÀ» ÀûÁö ¾Ê°í ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¼ö ÀÖÀ» »Ó ¾Æ´Ï¶ó, ƯÁ¤ ½©(csh, ksh µî)¿¡¼­ ÇÊ¿äÇÑ ÀÎ¿ë ºÎÈ£ µî¿¡ °üÇÑ ¹®Á¦µµ ¾ø°Ô µÈ´Ù.
½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏ´Â °¡Àå Æí¸®ÇÑ ¹æ¹ýÀº ½ºÅ©¸³Æ®¸¦ Á÷Á¢ ½ÇÇàÇÏ°í, ¿î¿µÃ¼Á¦·Î ÇÏ¿©±Ý ÇØ´ç ½ºÅ©¸³Æ®¿¡ ÇÊ¿äÇÑ ÀÎÅÍÇÁ¸®Å͸¦ ãµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. ¸î¸î ¿î¿µÃ¼Á¦¿¡¼­´Â ÀÌ·¯ÇÑ ÀÏ·ÃÀÇ ÀÏÀ» ÆÄÀÏÀÇ È®ÀåÀÚ¿Í Æ¯Á¤ ÀÀ¿ë ÇÁ·Î±×·¥°úÀÇ ¿¬°á, ȤÀº ƯÁ¤ µð·ºÅ丮¿Í ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¿¬°á·Î ÇØ°áÇϱ⵵ ÇÑ´Ù. ±×·¯ÇÑ °æ¿ì¿¡´Â »ç¿ëÀÚ°¡ Perl ½ºÅ©¸³Æ®¿Í ÀÎÅÍÇÁ¸®Å͸¦ ¿¬°áÇØ ÁÖ¾î¾ß¸¸ ÇÑ´Ù. UNIX ½Ã½ºÅÛ¿¡¼­´Â ½ºÅ©¸³Æ®ÀÇ Ã¹ ÁÙ¿¡ #!À» »ç¿ëÇÏ¿© ÇØ´ç ½ºÅ©¸³Æ®ÀÇ ½ÇÇà¿¡ ÇÊ¿äÇÑ ÇÁ·Î±×·¥À» ÁöÁ¤ÇÒ ¼ö ÀÖµµ·Ï µÇ¾î ÀÖ´Ù. ¾Õ¼­ ¼ºÀû ¿¹Á¦ ÇÁ·Î±×·¥ÀÇ Ã¹ ÁÙ¿¡¼­
% #!/usr/bin/perl
À̶ó°í Àû¾î ³õ¾ÒÀ» °æ¿ì ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇϱâ À§Çؼ­´Â ´ÜÁö
% gradation
À̶ó°í¸¸ ÇÏ¸é µÈ´Ù. ¹°·Ð ÀÌ ¶§ ½ºÅ©¸³Æ®°¡ ½ÇÇà °¡´ÉÇÑ ¸ðµå(chmod(1) ÂüÁ¶)·Î µÇ¾î ÀÖÀ¸¸ç PATH ¾È¿¡ Æ÷ÇԵǾî ÀÖ´ÂÁö È®ÀÎÇÏ¿©¾ß ÇÑ´Ù. ¸¸¾à ½ºÅ©¸³Æ®°¡ À§Ä¡ÇÏ°í ÀÖ´Â µð·ºÅ丮°¡ PATH ȯ°æ º¯¼ö¿¡ Æ÷ÇԵǾî ÀÖÁö ¾Ê´Ù¸é ´ÙÀ½°ú °°ÀÌ µð·ºÅ丮¸¦ Æ÷ÇÔÇÑ ½ºÅ©¸³Æ® ¸íÀ» Á־ ½ÇÇàÇϵµ·Ï ÇØ¾ß ÇÑ´Ù.
% ../bin/gradation
¸¸¾à #! Ç¥±â¸¦ Áö¿øÇÏÁö ¾Ê´Â ¿À·¡µÈ UNIX ½Ã½ºÅÛÀ̰ųª, perl ÀÎÅÍÇÁ¸®Å͸¦ ³ªÅ¸³»´Â Àý´ë °æ·Î°¡ 32±ÛÀÚ(¸¹Àº ½Ã½ºÅÛ¿¡¼­ Á¦ÇÑµÈ ÇÑ°è°ª)¸¦ ³Ñ¾î¼­´Â °æ¿ì, ù ¹ø° ÁÙÀ» ´ÙÀ½°ú °°ÀÌ ÇÏ¿© ÇØ°áÇÒ ¼ö ÀÖ´Ù.
#!/bin/sh -- # perl, to stop looping
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
    if 0;
¸î¸î ¿î¿µÃ¼Á¦¿¡¼­´Â /bin/cshÀ̳ª DCL, COMMAND.COM µî°ú °°Àº ±âº» ¸í·É¾î Çؼ®±â¿¡ µû¶ó ÀûÀýÇÑ º¯ÇüÀ» ÇÏ¿©¾ß ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÚ¼¼ÇÑ °ÍÀº ÁÖÀ§ÀÇ Àü¹®°¡¿¡°Ô ¹°¾îº¸±â ¹Ù¶õ´Ù.
ÀÌ Ã¥ Àüü¿¡¼­´Â ¾ÕÀ¸·Î Perl ÀÎÅÍÇÁ¸®ÅÍÀÇ À§Ä¡¸¦ #!/usr/bin/perl·Î ³ªÅ¸³¾ °ÍÀÌ´Ù.  ¿©·¯ºÐÀº °¢ÀÚÀÇ ½Ã½ºÅÛ¿¡ ¸Âµµ·Ï ÀûÀýÈ÷ º¯°æÇϱ⠹ٶõ´Ù.
ÁÖÀÇ»çÇ× 1: ¸¸¾à ½ÃÇè¿ë ½ºÅ©¸³Æ®¸¦ ¸¸µé °æ¿ì, test¶ó´Â À̸§À¸·Î ¸¸µéÁö ¸»±â ¹Ù¶õ´Ù. UNIX ½Ã½ºÅÛ¿¡´Â ¹Ì¸® ÁöÁ¤µÈ test¶ó´Â ¸í·É¾î°¡ ÀÖÀ¸¸ç ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÒ °æ¿ì ÀÌ ¸í·É¾î°¡ ½ÇÇàµÉ ¼öµµ ÀÖ´Ù. test ´ë½Å try¸¦ »ç¿ëÇ϶ó.
ÁÖÀÇ»çÇ× 2: PerlÀ» óÀ½¿¡ °øºÎÇÒ ¶§, ±×¸®°í ³ªÁß¿¡¶óµµ °³¹ß ÁßÀÏ ¶§´Â perlÀ» ½ÇÇàÇÒ ¶§ -w ¿É¼ÇÀ» »ç¿ëÇÏ±æ ¹Ù¶õ´Ù. ÀÌ ¿É¼ÇÀ» »ç¿ëÇÏ¸é ½ºÅ©¸³Æ® ½ÇÇà½Ã ´Ù¾çÇÏ°í À¯ÀÍÇÑ °¢Á¾ °æ°í ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÑ´Ù. ½ºÅ©¸³Æ®¿¡¼­´Â ù ÁÙ¿¡ ´ÙÀ½°ú °°ÀÌ ÀûÀ¸¸é µÈ´Ù.
#!/usr/bin/perl -w
ÀÌÁ¦ ¿©·¯ºÐÀº ¿©·¯ºÐ ÀÚ½ÅÀÌ ¸¸µç Perl ÇÁ·Î±×·¥(perl ÀÎÅÍÇÁ¸®ÅÍ¿Í È¥µ¿ÇÏÁö ¸» °Í) À» ¾î¶»°Ô ½ÇÇàÇÏ´Â Áö¿¡ °üÇØ ¹è¿ü´Ù. ±×·³ ¾Õ¼­ÀÇ ¿¹Á¦ ÇÁ·Î±×·¥À¸·Î µ¹¾Æ°¡ º¸ÀÚ.



ÆÄÀÏ ÇÚµé
ÇÁ·Î±×·¥ ³»¿¡¼­ ¿ÜºÎ¿Í ¾î¶² µ¥ÀÌÅ͸¦ ÁÖ°í ¹Þ±â À§Çؼ­´Â ¸î °¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. ±× Áß Çϳª°¡ ¾Õ¼­ ¿¹Á¦ ÇÁ·Î±×·¥ 3, 4¹ø° ÁÙ¿¡ ÀÖ´Â GRADES¿Í °°ÀÌ ÆÄÀÏ ÇÚµé À̶ó´Â PerlÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀÌ´Ù. ÆÄÀÏ ÇÚµéÀº ƯÁ¤ ÆÄÀÏÀ̳ª ÀåÄ¡, ¼ÒÄÏ, ȤÀº ÆÄÀÌÇÁÀÇ À̸§À» ¾Ë±â ½±°í ³ªÁß¿¡ ÂüÁ¶Çϱ⠽±µµ·Ï À̸§ ºÙÀÎ °ÍÀ¸·Î¼­, ÀÌ·¯ÇÑ ÆÄÀÏ ÇÚµéÀ» »ç¿ëÇÏ°Ô µÇ¸é OS³ª ÀÎÅÍÇÁ¸®ÅÍ ³»ºÎ¿¡¼­ ¹ú¾îÁö´Â ¹öÆÛ¸µ(buffering)µî º¹ÀâÇÑ ³»¿ëÀ» ¾Ë°í ÀÖÁö ¾Ê¾Æµµ µÈ´Ù.(¿©±â¼­ÀÇ ÆÄÀÏ ÇÚµéÀº C++¿¡¼­ÀÇ ½ºÆ®¸²(stream)À̳ª BASICÀÇ I/O ä³Î°ú ºñ½ÁÇÏ´Ù)
ÆÄÀÏ ÇÚµéÀº »ç¿ëÀÚ·Î ÇÏ¿©±Ý ´Ù¾çÇÑ °÷À¸·Î ÀÔ/Ãâ·ÂÀ» ½±°Ô ÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù. PerlÀ» glue ¾ð¾îÀÇ ÁÁÀº ¿¹·Î µå´Â ÀÌÀ¯ ÁßÀÇ Çϳª´Â ¸¹Àº ÆÄÀÏÀ̳ª ÇÁ·Î¼¼½º¿ÍÀÇ ¿¬°áÀ» ÀÌ·¯ÇÑ ÆÄÀÏ ÇÚµéÀ» ÅëÇØ ½±°Ô ÇÒ ¼ö ÀÖ´Ù´Â µ¥¿¡ ÀÖ´Ù. ÇÁ·Î±×·¥ ¿ÜºÎÀÇ ´Ù¾çÇÑ °´Ã¼¿¡ Àß ¾î¿ï¸®´Â À̸§À» ºÙ¿© »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ ¹Ù·Î ÁÁÀº glue ¾ð¾îÀÇ ¿¹¶ó°í ÇÒ ¼ö ÀÖ´Ù.
ÀÌ·¯ÇÑ ÆÄÀÏ ÇÚµéÀº open ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© »ý¼º, ÆÄÀÏ¿¡ ½±°Ô ¿¬°áÇÒ ¼ö ÀÖ´Ù. open ÇÔ¼ö´Â µÎ °³ÀÇ ÆĶó¹ÌÅ͸¦ °®´Âµ¥, Çϳª´Â ÆÄÀÏ ÇÚµéÀÌ°í ´Ù¸¥ Çϳª´Â ÆÄÀÏ ÇÚµé°ú ¿¬°áÇÏ·Á´Â ÆÄÀϸíÀÌ´Ù. ÀÌ ¹Û¿¡ Perl¿¡´Â ¹Ì¸® Á¤ÀǵÈ(±×¸®°í ¹Ì¸® ¿­·Á ÀÖ´Â) ¸î °³ÀÇ ÆÄÀÏ ÇÚµéÀÌ ÀÖ´Ù. STDINÀº ÇÁ·Î±×·¥ÀÇ ±âº» ÀԷ ä³Î, STDOUTÀº ±âº» Ãâ·Â ä³Î, ±×¸®°í STDERRÀº ±âº» ¿À·ù Ãâ·Â ä³ÎÀ» ¶æÇÑ´Ù.
open ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÆÄÀÏ ÇÚµéÀ» ¸¸µé ¶§¿¡´Â, ´Ù¾çÇÑ »ç¿ë ¿ëµµ(ÀÔ·Â, Ãâ·Â, ÆÄÀÌÇÁ)¿¡ µû¶ó ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.
open(SESAME, "filename");                        # ÇöÀç ÆÄÀϷκÎÅÍ Àбâ
open(SESAME, "<filename");                       # À§¿Í °°À½ (Àб⸦ ¸íÈ®ÇÏ°Ô Ç¥½Ã)
open(SESAME, ">filename");                       # ÆÄÀÏÀ» ¸¸µé°í ¾²±â
open(SESAME, ">>filename");                      # ÇöÀç ÆÄÀÏ µÚ¿¡ µ¡ºÙ¿© ¾²±â
open(SESAME, "| output-pipe-command");        # Ãâ·Â ÇÊÅÍ ¸¸µé±â
open(SESAME, "input-pipe-command |");            # ÀÔ·Â ÇÊÅÍ ¸¸µé±â
¹°·Ð ÆÄÀÏ ÇÚµéÀÇ À̸§Àº »ç¿ëÀÚÀÇ ÇÊ¿ä¿¡ µû¶ó ÀÓÀÇ·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. open ÇÔ¼ö¸¦ ÅëÇØ ÀÏ´Ü ¿­·ÁÁø ÈÄ¿¡´Â, SESAME¶ó´Â ÆÄÀÏ ÇÚµéÀº close(SESAME) ÇÔ¼ö¸¦ ÅëÇØ ´ÝÇôÁö°Å³ª °°Àº ÆÄÀÏ ÇÚµé ¸íÀ¸·Î ´Ù¸¥ ÆÄÀÏ¿¡ ¿¬°áµÇ±â Àü±îÁö ÇØ´ç ÆÄÀÏÀ̳ª ÆÄÀÌÇÁ¸¦ ÂüÁ¶ÇÏ´Â µ¥ »ç¿ëµÈ´Ù.
ÀÔ·ÂÀ» À§ÇØ ÆÄÀÏ ÇÚµéÀ» ¸¸µç ÈÄ¿¡´Â(ȤÀº STDINÀ» »ç¿ëÇÏ´Â °æ¿ì), ÁÙ ÀÔ·Â ¿¬»êÀÚ < >À» »ç¿ëÇÏ¿© ÇÑ ÁÙ¾¿ ÀÐ¾î µéÀÏ ¼ö ÀÖ´Ù. ¾Þ±Û ¿¬»êÀÚ < >À» ÀÐ¾î µéÀÏ ÆÄÀÏ ÇÚµé ¾Õ µÚ¿¡ ºÙÀÌ¸é µÈ´Ù.(¿¹: <SESAME>) µû¶ó¼­ STDIN ÆÄÀÏ ÇÚµéÀ» »ç¿ëÇØ »ç¿ëÀڷκÎÅÍ ÀÔ·ÂÀ» ¹Þ¾Æ µéÀÌ´Â ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°ÀÌ µÉ °ÍÀÌ´Ù.
print STDOUT "Enter a number: ";                  # ¼ýÀÚ ÀÔ·ÂÀ» ¿ä±¸
$number = <STDIN>;                               # ¼ýÀÚ ÀÔ·ÂÀ» ¹ÞÀ½
print STDOUT "The number is $number\n";           # ¼ýÀÚ¸¦ Ãâ·Â
À§ÀÇ ¿¹¿¡¼­´Â STDOUT Ç¥ÁØ Ãâ·ÂÀ» ÅëÇØ Ãâ·Â ÆÄÀÏ ÇÚµéÀ» »ç¿ëÇÏ´Â ¿¹¸¦ º¸¿´´Ù.  print ÇÔ¼öÀÇ Ã¹ ¹ø° ÆĶó¹ÌÅÍ·Î ÆÄÀÏ ÇÚµéÀÌ ¿Ã ¼ö ÀÖÀ¸¸ç, ÀÌ °æ¿ì print ÇÔ¼öÀÇ Ãâ·ÂÀº ÇØ´ç ÆÄÀÏ ÇÚµé·Î °¡°Ô µÈ´Ù. À§ÀÇ °æ¿ì, ±»ÀÌ STDOUTÀ» ÁöÁ¤ÇÏÁö ¾Ê´õ¶óµµ Ç¥ÁØ Ãâ·ÂÀ¸·Î print ÇÔ¼ö Ãâ·ÂÀÌ ³ª°¡°Ô µÈ´Ù. STDINÀÌ ±âº» ÀÔ·ÂÀÎ °Í°ú °°ÀÌ STDOUT Àº ±âº» Ãâ·Â¿¡ ÇØ´çÇÑ´Ù.(¾Õ¼­ ¼ºÀû ÇÁ·Î±×·¥ ¿¹Á¦ÀÇ 18¹ø° ÁÙ¿¡¼­´Â ÀÌ °°Àº ÀÌÀ¯·Î ±»ÀÌ STDOUTÀ» ÁöÁ¤ÇÏÁö ¾Ê¾Ò´Ù.)
À§ÀÇ ¿¹Á¦¿¡¼­ ¾ð±ÞÇÏÁö ¾ÊÀº °ÍÀÌ ¶Ç Çϳª ÀÖ´Ù. ¿¹Á¦¸¦ ½ÇÇàÇÏ°Ô µÇ¸é ¾Æ¸¶ ºó ÁÙÀÌ Áß°£¿¡ ÇÑ ÁÙ µé¾î°¡°Ô µÉ °ÍÀÌ´Ù. ÀÌ°ÍÀº Ç¥ÁØ ÀÔ·ÂÀ¸·ÎºÎÅÍ °ªÀ» ÀÐ¾î µéÀÏ ¶§ ÀÚµ¿À¸·Î °³Ç๮ÀÚ°¡ Á¦°ÅµÇÁö ¾Ê¾Ò±â ¶§¹®ÀÌ´Ù.(¿¹¸¦ µé¾î ÀÔ·ÂÀÌ "9\n" °ú °°Àº °æ¿ì) ÀÌ·± °æ¿ì °³Ç๮ÀÚ¸¦ Á¦°ÅÇÏ·Á¸é Perl¿¡¼­ ±âº»ÀûÀ¸·Î Á¦°øÇÏ´Â chopÀ̳ª chompÇÔ¼ö¸¦ »ç¿ëÇÏ¸é µÈ´Ù. chop ÇÔ¼ö´Â ¹«Á¶°Ç ÀÔ·ÂÀÇ ¸¶Áö¸· ±ÛÀÚ¸¦ Á¦°ÅÇÏ´Â µ¥ ºñÇØ, chomp´Â ·¹ÄÚµå Á¾°á Ç¥½ÃÀÚ(ÀϹÝÀûÀ¸·Î "\n" )·Î ÁöÁ¤µÈ ±ÛÀÚ¸¦ Á¦°ÅÇÑ ´ÙÀ½ Á¦°ÅµÈ ±ÛÀÚÀÇ ÃÑ °³¼ö¸¦ ¹ÝȯÇÑ´Ù. ¾ÕÀ¸·ÎÀÇ ¿¹Á¦¿¡¼­´Â ÀÔ·ÂÀ» ¹Þ¾Æ µéÀÌ´Â ´ÙÀ½°ú °°Àº ÁÙÀ» ÀÚÁÖ º¸°Ô µÉ °ÍÀÌ´Ù.
chop($number = <STDIN>);        # ¼ýÀÚ ÀÔ·Â ÈÄ ÁÙ¹Ù²Þ Á¦°Å
À§ÀÇ ¹®ÀåÀº ´ÙÀ½ µÎ ¹®ÀåÀ» ÇÕÇØ ³õÀº °Í°ú °°´Ù.
$number = <STDIN>;                # ¼ýÀÚ ÀÔ·Â
chop($number);                        # ÁÙ¹Ù²Þ Á¦°Å



¿¬»êÀÚ
¾Õ¼­ ¸»ÇÑ ´ë·Î, PerlÀº ¶ÇÇÑ ¼öÇÐÀûÀÎ ¾ð¾îÀÌ´Ù. ÀÌ´Â Àú¼öÁØ(low level)ÀÇ ºñÆ® ¿¬»ê¿¡¼­ºÎÅÍ ¼ýÀÚ ¹× ÁýÇÕ ¿¬»ê, ±×¸®°í ´Ù¾çÇÑ ÇüÅÂÀÇ Ãß»óÀû ¿¬»ê¿¡ À̸£´Â ´Ù¾çÇÑ ´Ü°èÀÇ ¿¬»êÀ» ÇàÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¼öÇÐÀÚµéÀº ±×µé ³ª¸§´ë·ÎÀÇ °¢Á¾ ¼öÇÐÀû Ç¥±â¹ýÀ» ¸¸µé¾î³»¾î »ç¿ëÇϵíÀÌ, Àü»êÇÐÀÚµµ ÀÌ·¯ÇÑ ¼öÇÐÀûÀΠǥ±â¹ýÀ» ¸¸µé¾î ³»°ï ÇÑ´Ù. Perl¿¡´Â C³ª FORTRAN, sed(1), awk(1) µî¿¡¼­ ºô·Á ¿Â ´Ù¾çÇÑ ¿¬»êÀÚ°¡ Á¸ÀçÇϸç, À̵鿡 Àͼ÷ÇÑ »ç¶÷µéÀº ±×¸® ³¸¼³Áö ¾ÊÀ» °ÍÀÌ´Ù.
Perl¿¡ ±âº»ÀûÀ¸·Î Æ÷ÇԵǾî ÀÖ´Â ´Ù¾çÇÑ ¿¬»êÀÚ´Â ÀμöÀÇ °³¼ö¿¡ µû¶ó 1¿ø(unary), 2¿ø(binary), 3¿ø(ternary) ¿¬»êÀÚ·Î ºÐ·ùµÈ´Ù. ¶ÇÇÑ ÀÌµé ¿¬»êÀÚ´Â ±× À§Ä¡¿¡ µû¶ó »ðÀÔ(infix) ¿¬»êÀÚ ¹× Á¢µÎ(prefix) ¿¬»êÀÚ·Î ºÐ·ùµÇ±âµµ Çϸç, ¿¬»êÀÌ ÇàÇØÁö´Â °´Ã¼ÀÇ Á¾·ù¿¡ µû¶ó ºÐ·ùµÇ±âµµ ÇÑ´Ù. ³ªÁß¿¡ ÀÌµé ¿¬»êÀÚ ¸ðµÎ¸¦ ºÐ·ùÇÑ Ç¥¸¦ º¸±â Àü¿¡, ¿ì¼± ¸î °¡Áö ±âº»ÀûÀÎ ¿¬»êÀÚ¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ.


»ê¼ú ¿¬»êÀÚ
»ê¼ú ¿¬»êÀÚ´Â ´õÇϱâ, »©±â µî ±âº»ÀûÀÎ »ê¼ú¿¬»êÀ» ÇàÇÏ´Â ¿¬»êÀÚÀÌ´Ù. À̵éÀº ¼ýÀÚ¿¡ ´ëÇØ ¸î °¡Áö Á¾·ùÀÇ ¼öÇÐÀûÀÎ ±â´ÉÀ» ÇàÇÑ´Ù.
¿¹À̸§°á°ú$a + $b´õÇϱâ$a¿Í $bÀÇ ÇÕ$a * $b°öÇϱâ$a¿Í $bÀÇ °ö$a % $b°è¼ö(modulus)$a¸¦ $b·Î ³ª´« ³ª¸ÓÁö$a ** $b´©½Â(exponentiation)$aÀÇ $b½Â(Ç¥ 1-2) ¸î °¡Áö 2¿ø »ê¼ú ¿¬»êÀÚ
À§¿¡¼­ »©±â(-)¿Í ³ª´©±â(/) ¿¬»êÀÚ¸¦ ºü¶ß·ÈÁö¸¸, À̵éÀÌ ¾î¶»°Ô µ¿ÀÛÇÏ´Â Áö¿¡ ´ëÇؼ­´Â À§¿¡ ³ªÅ¸³½ ¿¬»êÀÚ¿Í ¸¶Âù°¡Áö·Î ¿©·¯ºÐÀÌ »ó»óÇÏ´Â ±×´ë·ÎÀÌ´Ù. ÀÌµé »ê¼ú ¿¬»êÀÚ´Â ¼öÇÐ ½Ã°£¿¡ ¹è¿î ´ë·Î ¿ì¼±¼øÀ§¿¡ µû¶ó ¿¬»êÀÌ ÇàÇØÁö¹Ç·Î, ¸ÕÀú ½ÇÇàÇØ¾ß ÇÒ ¿¬»ê¿¡ ´ëÇؼ­´Â °ýÈ£¸¦ »ç¿ëÇÏ¿© ¹­¾î ÁÖ¾î¾ß ÇÑ´Ù.


¹®ÀÚ¿­ ¿¬»êÀÚ
PerlÀÇ ¹®ÀÚ¿­ ¿¬»êÀÚ¿¡µµ "´õÇϱâ" ¿¬»êÀÚ°¡ Àִµ¥, µÎ °³ÀÇ ¹®ÀÚ¿­À» ÀÕ´Â ¹®ÀÚ¿­ ¿¬°á ¿¬»êÀÚ(.)°¡ ¹Ù·Î ±×°ÍÀÌ´Ù. ´ÙÀ½ ¿¹¸¦ º¸ÀÚ.
$a = 123;
$b = 456;
print $a + $b;                # 579 Ãâ·Â
print $a . $b;                # 123456 Ãâ·Â
¶ÇÇÑ ¹®ÀÚ¿­ÀÇ "°öÇϱâ" ¿¬»êÀÚµµ Àִµ¥, ÀÌ°ÍÀ» ¹Ýº¹(repeat) ¿¬»êÀÚ¶ó°íµµ ÇÏ¸ç »ê¼ú ¿¬»êÀÚÀÇ °öÇϱâ¿Í ±¸º°Çϱâ À§ÇØ "x"¸¦ »ç¿ëÇÑ´Ù.
$a = 123;
$b = 3;
print $a * $b;                # 369 Ãâ·Â
print $a x $b;                # 123123123 Ãâ·Â
ÀÌ·¯ÇÑ ¹®ÀÚ¿­ ¿¬»êÀÚ´Â ºñ½ÁÇÑ ±â´ÉÀ» ÇÏ´Â »ê¼ú ¿¬»êÀÚ¿Í °°ÀÌ ±ä¹ÐÇÏ°Ô ¿¬°üµÇ¾î ÀÖ´Ù. ¹Ýº¹ ¿¬»êÀÚÀÇ °æ¿ì ¿ÞÂÊ¿¡´Â ¹®ÀÚ¿­À», ¿À¸¥ÂÊ¿¡´Â ¼ýÀÚ ÆĶó¹ÌÅ͸¦ °®´Â °ÍÀÌ Á¶±Ý ƯÀÌÇÏ´Ù. ¶ÇÇÑ À§ÀÇ ¿¹¿¡¼­ PerlÀÌ ¾î¶² °æ¿ì¿¡ ¼ýÀÚ¸¦ ¹®ÀÚ¿­·Î ÀÚµ¿ º¯È¯ÇÏ´ÂÁö ÁÖ¸ñÇϱ⠹ٶõ´Ù.
¶Ç ÇÑ°¡Áö ¤°í ³Ñ¾î°¥ °ÍÀÌ ÀÖ´Ù. ¹®ÀÚ¿­ ¿¬°áÀº °ã µû¿ÈÇ¥ ÀοëºÎÈ£¸¦ »ç¿ëÇÑ ¹®ÀÚ¿­µéÀ» »ðÀÔÇÏ´Â °æ¿ì¿¡ ¹¬½ÃÀûÀ¸·Î Àû¿ëµÈ´Ù. ¸¸¾à ¾î¶² °ªµéÀÇ ¸®½ºÆ®¸¦ Ãâ·ÂÇÏ´Â °æ¿ì ±»ÀÌ ¹®ÀÚ¿­ ¿¬°á ¿¬»êÀÚ¸¦ »ç¿ëÇÏÁö ¾Ê´õ¶óµµ ÇØ´ç ¹®ÀÚ¿­ÀÌ ¿¬°áµÇ¾î Ãâ·ÂµÈ´Ù.  ´ÙÀ½ ¼¼ °¡Áö ¿¹´Â ¸ðµÎ °°Àº Ãâ·ÂÀ» °®´Â´Ù.
print $a . ' is equal to ' . $b . "\n";            # ¿¬°á ¿¬»êÀÚ
print $a, ' is equal to ', $b, "\n";               # ¸®½ºÆ®
print "$a is equal to $b\n";                      # »ðÀÔ Ä¡È¯
¾î´À °æ¿ì¿¡ ¾î¶² ¹æ¹ýÀ» »ç¿ëÇÒ Áö´Â ÀüÀûÀ¸·Î ÇÁ·Î±×·¡¸Ó¿¡°Ô ´Þ·È´Ù.
¾Æ¸¶ óÀ½ º¸¾ÒÀ» ¶§ "x" ¿¬»êÀÚÀÇ Çʿ伺À» ±×¸® Å©°Ô ´À³¢Áö ¸øÇÒ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù.  ±×·¯³ª ¶§¶§·Î ´ÙÀ½°ú °°ÀÌ ¾ÆÁÖ À¯¿ëÇÏ°Ô ¾²ÀÏ ¶§°¡ ÀÖ´Ù.
print "-" x $scrwid, "\n";
À§ÀÇ °æ¿ì È­¸éÀÇ Æø($scrwid) ¸¸Å­ °¡·ÎÁÙÀ» ±ß°Ô µÈ´Ù.(º°µµÀÇ for ·çÇÁ°¡ ÇÊ¿ä¾ø´Ù.)


´ëÀÔ ¿¬»êÀÚ
ÀÔ ¿¬»êÀÚ´Â ÀÌ¹Ì ¾ÕÀÇ ¿¹¿¡¼­ ¸¹ÀÌ º¸¾ÒÀ» °ÍÀÌ´Ù. =Àº ¼öÇп¡¼­ÀÇ '°°À½'À» ³ªÅ¸³»´Â °ÍÀÌ ¾Æ´Ï¶ó ¿À¸¥ÂÊ °ªÀ» ¿ÞÂÊ¿¡ ´ëÀÔÇÑ´Ù´Â °ÍÀ» ¸í½ÉÇØ Áֱ⠹ٶõ´Ù.(¼öÇп¡¼­ÀÇ '°°À½'À» ³ªÅ¸³»´Â °°À½ ¿¬»êÀÚ´Â ==ÀÌ´Ù.)
¾Õ¼­ÀÇ ¿¬»êÀÚ¿Í ¸¶Âù°¡Áö·Î ´ëÀÔ ¿¬»êÀÚ ¶ÇÇÑ 2Áø »ðÀÔ ¿¬»êÀڷμ­ ¿¬»êÀÚ Á¿쿡 ÇÇ¿¬»êÀÚ¸¦ °®´Â´Ù. ¿¬»êÀÚÀÇ ¿À¸¥ÂÊ¿¡´Â ÀÓÀÇÀÇ °ªÀ̳ª ¼ö½ÄÀÌ ¿Ã ¼ö ÀÖÁö¸¸, ¿ÞÂÊ¿¡´Â ¹Ýµå½Ã lvalue(º¯¼ö³ª ¹è¿­ÀÇ À¯È¿ÇÑ ÀúÀå À§Ä¡)¶ó°í ÇÏ´Â ÇÇ¿¬»êÀÚ°¡ ¿Í¾ß ÇÑ´Ù. °¡Àå ÈçÇÑ ´ëÀÔ ¿¬»êÀÚÀÇ »ç¿ëÀº ´Ü¼øÇÑ ´ëÀÔÀ¸·Î¼­, ¿¬»êÀÚ ¿ìÃøÀÇ °á°ú°ªÀ» ÁÂÃøÀÇ º¯¼ö¿¡ ³Ö´Â °ÍÀÌ´Ù.
$a = $b;
$a = $b + 5;
$a = $a * 3;
¸¶Áö¸· ÁÙ¿¡¼­ °°Àº º¯¼ö°¡ µÎ ¹ø ÂüÁ¶µÈ °ÍÀ» ÁÖ¸ñÇϱ⠹ٶõ´Ù. ÇÑ ¹øÀº ¿¬»êÀ» À§ÇØ, ±×¸®°í ÇÑ ¹øÀº ´ëÀÔÇÒ ¶§ »ç¿ëµÇ¾úÀ¸¸ç ÀÌ°ÍÀº À߸ø »ç¿ëµÈ °ÍÀÌ ¾Æ´Ï´Ù. C¾ð¾î¿¡¼­¿Í ¸¶Âù°¡Áö·Î ÀÌ·¯ÇÑ °æ¿ì Ãà¾àµÈ ÇüÅÂÀÇ Ç¥±â°¡ °¡´ÉÇÏ´Ù. ¸¸¾à ´ÙÀ½°ú °°ÀÌ ÇÒ °æ¿ì,
lvalue operator= expression                        # $var += 1
ÀÌ°ÍÀº ´ÙÀ½°ú °°ÀÌ Çؼ®µÇ¾î ½ÇÇàµÈ´Ù.
lvalue = lvalue operator expression                # $var = $var + 1
µû¶ó¼­ À§ÀÇ °æ¿ì ´ÙÀ½°ú °°ÀÌ
$a *= 3;
"$a¿¡ 3À» °öÇÑ´Ù"·Î µÇ´Â °ÍÀÌ´Ù. ¸¶Âù°¡Áö·Î Perl¿¡ ÀÖ´Â °ÅÀÇ ´ëºÎºÐÀÇ 2¿ø ¿¬»êÀÚ¿¡´Â °°Àº ¹æ½ÄÀÌ Àû¿ëµÈ´Ù.(C¾ð¾î¿¡¼­Á¶Â÷ ¾ø´Â °æ¿ìµµ ÀÖ´Ù.)
$line .= "\n";                 # $line ³¡¿¡ °³Ç๮ÀÚ¸¦ Ãß°¡.
$fill x= 80;                            # ¹®ÀÚ¿­ $fillÀ» ÀÚ½ÅÀÇ 80ȸ ¹Ýº¹À¸·Î ¸¸µé±â.
$val ||= "2";                         # $valÀÇ °ªÀÌ ÁöÁ¤µÇÁö ¾Ê¾Ò´Ù¸é 2·Î ÃʱâÈ­.
¾Õ¼­ ¼ºÀûó¸® ¿¹Á¦ ÇÁ·Î±×·¥ÀÇ 6¹ø° ÁÙ¿¡¼­ µÎ °³ÀÇ ¹®ÀÚ¿­ ¿¬°á ¿¬»êÀÚ¸¦ º¼ ¼ö ÀÖÀ¸¸ç, ÀÌ Áß Çϳª´Â ´ëÀÔ ¿¬»êÀÚÀÌ´Ù. ±×¸®°í 14¹ø° ÁÙ¿¡¼­´Â +=¿¬»êÀÚ¸¦ º¼ ¼ö ÀÖ´Ù.
¾î¶² ´ëÀÔ ¿¬»êÀÚ¸¦ »ç¿ëÇϵçÁö, ´ëÀÔ ¿¬»êÀÇ ¹Ýȯ°ªÀº ´ëÀÔÇÑ ÈÄÀÇ ÃÖÁ¾ °ªÀÌ µÈ´Ù. (Pascal°ú °°Àº ¾ð¾î¿¡¼­´Â ´ëÀÔ ¿¬»ê ¹®ÀåÀº ¹Ýȯ°ªÀÌ ¾ø´Ù.) µû¶ó¼­ ¾Õ¼­ ´ÙÀ½°ú °°Àº ¿¹¿¡¼­
chop($number = <STDIN>)
chop ÇÔ¼ö´Â $numberÀÇ ÃÖÁ¾ °ªÀ» ÆĶó¹ÌÅÍ·Î °®´Â´Ù. ÀÌ·¯ÇÑ ´ëÀÔ ¿¬»êÀº ¾ÕÀ¸·Î ¼ºÀû ó¸® ¿¹Á¦ ÇÁ·Î±×·¥ 4¹ø° ÁÙ°ú °°Àº while ·çÇÁ¿¡¼­ ÀÚÁÖ º¸°Ô µÉ °ÍÀÌ´Ù.


ÀÚµ¿ Áõ°¡ / ÀÚµ¿ °¨¼Ò ¿¬»êÀÚ
'$var += 1'°ú °°Àº ¹®ÀåÀ» ´õ¿í °£´ÜÇÏ°Ô Çϱâ À§ÇØ PerlÀº C¾ð¾î¿¡¼­¿Í °°ÀÌ º¯¼ö °ªÀ» Áõ°¡Çϰųª °¨¼ÒÇϱâ À§ÇØ ÀÚµ¿ Áõ°¡ ¹× ÀÚµ¿ °¨¼Ò ¿¬»êÀÚ¸¦ Á¦°øÇÏ°í ÀÖ´Ù. À̵é ÀÚµ¿ Áõ°¨ ¿¬»êÀÚ´Â º¯¼öÀÇ ¾Õ µÚ ¾î´À ÂÊ¿¡µµ Àû¿ëµÉ ¼ö ÀÖÀ¸¸ç, ¾ðÁ¦ º¯¼öÀÇ °ªÀ» º¯È­½ÃÅ°´Â°¡¿¡ µû¶ó ´Ù¸£°Ô »ç¿ëµÈ´Ù.
¿¹À̸§°á°ú++$a, $a++ÀÚµ¿ Áõ°¡$a¿¡ 1À» ´õÇϱâ--$a, $a--ÀÚµ¿ °¨¼Ò$a¿¡¼­ 1À» »©±â(Ç¥ 1-3) 1¿ø »ê¼ú ¿¬»êÀÚ
ÀÚµ¿ Áõ°¨ ¿¬»êÀÚ¸¦ º¯¼öÀÇ ¾Õ¿¡ À§Ä¡ÇÒ °æ¿ì, »çÀü Áõ°¡(ȤÀº »çÀü °¨¼Ò) º¯¼ö¶ó°í Çϸç, ÇØ´ç º¯¼ö °ªÀÌ ÂüÁ¶µÇ±â Àü¿¡ ¹Ì¸® º¯¼öÀÇ °ªÀ» Áõ°¨ÇÑ´Ù. º¯¼öÀÇ µÚ¿¡ ¿¬»êÀÚ°¡ À§Ä¡ÇÒ °æ¿ì »çÈÄ Áõ°¡(ȤÀº »çÈÄ °¨¼Ò) º¯¼ö¶ó°í ÇÏ¸ç º¯¼öÀÇ °ªÀÌ ÂüÁ¶µÇ°í ³­ ´ÙÀ½¿¡ º¯¼öÀÇ °ªÀ» Áõ°¨ÇÏ°Ô µÈ´Ù. ´ÙÀ½ ¿¹¸¦ º¸ÀÚ.
$a = 5;                #$a¿¡ 5¸¦ ´ëÀÔÇÑ´Ù
$b = ++$a;        #$b´Â $a¸¦ Áõ°¡ÇÑ ´ÙÀ½ °ªÀ» ´ëÀÔÇÏ°Ô µÇ¹Ç·Î 6ÀÌ µÈ´Ù
$c = $a--;                #$c´Â 6, ±×¸®°í $a´Â °¨¼ÒµÇ¾î 5°¡ µÈ´Ù
¾Õ¼­ ¼ºÀû ó¸® ¿¹Á¦ ÇÁ·Î±×·¥ÀÇ 15¹ø° ÁÙ¿¡¼­ ¼ºÀû Çϳª¸¶´Ù $scoresº¯¼ö¸¦ ÀÚµ¿ Áõ°¡Çϵµ·Ï ÇÏ¿© ³ªÁß¿¡ Àüü Æò±ÕÀ» ±¸ÇÒ ¶§ »ç¿ëÇϵµ·Ï Çß¾ú´Ù. À̶§´Â »çÈÄ Áõ°¡ ¿¬»êÀÚ($scores++)¸¦ »ç¿ëÇÏ¿´À¸³ª, ÀÌ °æ¿ì lvalue°¡ ¾ø´Â(Áï lvalue°¡ ÇÇ¿¬»êÀÚ ÀÚ½ÅÀÎ °æ¿ì) °æ¿ìÀ̹ǷΠ»çÀü Áõ°¡ ¿¬»êÀÚ¸¦ »ç¿ëÇصµ °°Àº °á°ú¸¦ °®°Ô µÈ´Ù. ÀÌ ¶§ ¿¬»êÀÇ ¹Ýȯ°ªÀº »ç¿ëµÇÁö ¾Ê°í ±×³É ¹ö·ÁÁø´Ù.


³í¸® ¿¬»êÀÚ
³í¸® ¿¬»êÀÚ´Â ÇÁ·Î±×·¥ ³»¿¡¼­ Áßø Á¶°Ç¹®À» »ç¿ëÇÏÁö ¾Ê°í ´Ù¾çÇÑ ±âÁØÀ¸·Î °áÁ¤À» ³»¸®´Â °æ¿ì¿¡ »ç¿ëÇÏ´Â ¿¬»êÀÚÀÌ´Ù. ³í¸® ¿¬»êÀÚ¸¦ ¼ÒÀ§ "´Ü¶ô ÆǺ°" ¿¬»êÀÚ¶ó°íµµ Çϴµ¥, ÀÌ´Â ¿¬»êÀÚ ¿ÞÂÊÀÇ ÀμöÀÇ °ªÀ» ÆǺ°ÇÏ´Â °ÍÀ¸·Îµµ ¿¬»êÀÇ °á°ú¸¦ ³¾ ¼ö ÀÖ´Â °æ¿ì ¿À¸¥ÂÊ ÀμöÀÇ °á°ú°ª ÆǺ°À» °Ç³Ê ¶Ù´Â ¼ºÁúÀ» °®°í Àֱ⠶§¹®ÀÌ´Ù.
Perl¿¡´Â ½ÇÁ¦·Î µÎ ¼¼Æ®ÀÇ ³í¸® ¿¬»êÀÚ°¡ ÀÖ´Ù. Çϳª´Â C¾ð¾î¿¡¼­ ºô·Á ¿Â °ÍµéÀÌ°í, ´Ù¸¥ Çϳª´Â ¾Ë¾Æº¸±â ÆíÇÑ ¿µ¾î ´Ü¾î·Î µÈ °ÍµéÀ̸ç, ÀÌµé µÎ °¡Áö´Â µ¿ÀÏÇÑ °á°ú¸¦ ³º´Â´Ù.
¿¹À̸§°á°ú$a && $bAnd$a°¡ °ÅÁþÀ̸é $a, ±×·¸Áö ¾ÊÀ¸¸é $b$a || $bOr$a°¡ ÂüÀ̸é $a, ±×·¸Áö ¾ÊÀ¸¸é $b! $aNot$a°¡ ÂüÀÌ ¾Æ´Ï¸é Âü$a and $bAnd$a°¡ °ÅÁþÀ̸é $a, ±×·¸Áö ¾ÊÀ¸¸é $b$a or $bOr$a°¡ ÂüÀ̸é $a, ±×·¸Áö ¾ÊÀ¸¸é $bnot $aNot$a°¡ ÂüÀÌ ¾Æ´Ï¸é Âü(Ç¥ 1-4) ³í¸® ¿¬»êÀÚ
ÀÌ·¯ÇÑ ³í¸® ¿¬»êÀÚÀÇ "´Ü¶ô ÆǺ°" ¼ºÁúÀ» ÀÌ¿ëÇÏ¿©, Á¶°Ç ½ÇÇ๮À» ¸¸µå´Â µ¥¿¡ ÀÌµé ³í¸® ¿¬»êÀÚ°¡ Á¾Á¾ »ç¿ëµÇ°ï ÇÑ´Ù. ¾Õ¼­ ¼ºÀû ó¸® ¿¹Á¦¿¡¼­¿Í °°ÀÌ grades¶ó´Â ÆÄÀÏÀ» ¿©´Â °æ¿ì¸¦ »ìÆ캸ÀÚ.
open(GRADES, "grades") or die "Can't open file grades: $!\n";
ÆÄÀÏÀ» ¿©´Â µ¥ ¼º°øÇÏ¸é ´ÙÀ½ ÁÙÀ» ½ÇÇàÇÑ´Ù. ¸¸¾à ÆÄÀÏÀ» ¿©´Â µ¥ ½ÇÆÐÇϸé die¹®Àå ÀÌÇÏÀÇ ¿À·ù ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í ÇÁ·Î±×·¥ ½ÇÇàÀÌ ÁߴܵȴÙ.
±ÛÀÚ ¶æ´ë·Î, À§ÀÇ ¹®ÀåÀº "grade¸¦ ¿­°Å³ª ȤÀº Á¾·á!"°¡ µÈ´Ù. ´Ù¸¥ ÀÚ¿¬¾îÀÇ ¿¹¸¦ Á¦¿ÜÇÏ°í¶óµµ, ÀÌ·¯ÇÑ ´Ü¶ô ÆǺ° ¿¬»êÀÚ¸¦ »ç¿ëÇϸé ÇÁ·Î±×·¥ÀÇ È帧À» ´«À¸·Î ¾Ë¾Æº¸±â ½±°Ô ÇØ ÁØ´Ù. Áß¿äÇÑ Ã³¸®´Â È­¸éÀÇ ¿ÞÂÊ¿¡ À§Ä¡ÇÏ°í µÎ ¹ø° 󸮴 ȭ¸éÀÇ ¿À¸¥ÂÊ¿¡ À§Ä¡ÇÏ°Ô²û ÇÏ´Â °ÍÀÌ´Ù.(À§¿¡¼­ $!º¯¼ö´Â ¿î¿µÃ¼Á¦¿¡¼­ Ç¥½ÃÇÏ´Â ¿À·ù ¸Þ½ÃÁö¸¦ ´ã°í ÀÖ´Ù. 2Àå Ư¼ö º¯¼ö ÂüÁ¶) ¹°·Ð ÀÌµé ³í¸® ¿¬»êÀÚ´Â ÀüÅëÀûÀÎ Á¶°Ç¹®, Áï if³ª while¿¡¼­µµ »ç¿ëµÉ ¼ö ÀÖ´Ù.


ºñ±³ ¿¬»êÀÚ
ºñ±³, ȤÀº °ü°è ¿¬»êÀÚ´Â µÎ °³ÀÇ ½ºÄ®¶ó °ª(¼ýÀÚ³ª ¹®ÀÚ¿­)ÀÇ »óÈ£ °ü°è¸¦ ºñ±³ÇÒ ¶§ »ç¿ëµÈ´Ù. ºñ±³ ¿¬»êÀÚ´Â µÎ Á¾·ùÀÇ °ÍÀÌ Àִµ¥, Çϳª´Â ¼ýÀÚ¸¦ ºñ±³Çϱâ À§ÇÑ °ÍÀÌ°í ´Ù¸¥ Çϳª´Â ¹®ÀÚ¿­À» ºñ±³Çϱâ À§ÇÑ °ÍÀÌ´Ù. Ç¥ 2-6Àº $a¿Í $b°¡ °¢°¢ ºñ±³ ¿¬»êÀÚÀÇ ¿ÞÂÊ, ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ¶ó°í °¡Á¤ÇÑ °æ¿ì¸¦ ³ªÅ¸³½ °ÍÀÌ´Ù.
ºñ±³¼ýÀÚ¹®ÀÚ¿­°á°ú°°´Ù==eq$a°¡ $b¿Í °°À¸¸é Âü°°Áö ¾Ê´Ù!=ne$a°¡ $b¿Í °°Áö ¾ÊÀ¸¸é ÂüÀÛ´Ù<lt$a°¡ $bº¸´Ù ÀÛÀ¸¸é ÂüÅ©´Ù>gt$a°¡ $bº¸´Ù Å©¸é ÂüÀ۰ųª °°´Ù<=le$a°¡ $bº¸´Ù Å©Áö ¾ÊÀ¸¸é Âüºñ±³<=>cmp°°À¸¸é 0, $a°¡ Å©¸é 1, $b°¡ Å©¸é -1(Ç¥ 2-5) ¼ýÀÚ, ¹®ÀÚ¿­ ºñ±³ ¿¬»êÀÚ
Ç¥ 2-6ÀÇ ¸¶Áö¸· ¿¬»êÀÚÀÎ <=>¿Í cmp´Â ´Ù¸¥ ¿¬»êÀÚ¿Í Áߺ¹µÇÁö¸¸, ¶§¶§·Î sort  ¼­ºê·çƾ°ú °°Àº °æ¿ì¿¡ ¸Å¿ì À¯¿ëÇÏ°Ô »ç¿ëµÇ±âµµ ÇÑ´Ù.(3Àå ÂüÁ¶).


ÆÄÀÏ Å×½ºÆ® ¿¬»êÀÚ
ÆÄÀÏ Å×½ºÆ® ¿¬»êÀڴ ƯÁ¤ ÆÄÀÏ¿¡ ´ëÇØ ¾î¶² ÀÏÀ» Çϱâ ÀÌÀü¿¡ ÆÄÀÏ¿¡ ´ëÇÑ ´Ù¾çÇÑ Á¤º¸¸¦ ¾Ë¾Æ³¾ ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù. ¿¹¸¦ µé¾î /etc/passwd¶ó´Â ÆÄÀÏÀÌ ÀÖ´ÂÁö ¹Ì¸® ¾Ë¾Æº» ÈÄ¿¡ ¾øÀ¸¸é »õ·Î¿î ÆÄÀÏÀ» ¸¸µå´Â °ÍÀÌ, ¹«Åδë°í ¸¸µé¾î¼­ ±âÁ¸¿¡ °®°í ÀÖ´ø Á¤º¸¸¦ Áö¿ì´Â °Íº¸´Ù ³ªÀ» °ÍÀÌ´Ù. Ç¥ 2-7¿¡ ÀÌ·¯ÇÑ ÆÄÀÏ Å×½ºÆ® ¿¬»êÀÚÀÇ ¿¹¸¦ º¸¿´´Ù.
¿¹À̸§°á°ú-e $aÁ¸Àç ¿©ºÎ$a ÆÄÀÏÀÌ Á¸ÀçÇϸé Âü-r $aÀб⠰¡´É$a ÆÄÀÏÀÌ Àб⠰¡´ÉÇϸé Âü-w $a¾²±â °¡´É$a ÆÄÀÏÀÌ ¾²±â °¡´ÉÇϸé Âü-d $aµð·ºÅ丮$a°¡ µð·ºÅ丮À̸é Âü-f $aÆÄÀÏ$a ÆÄÀÏÀÌ ÀÏ¹Ý ÆÄÀÏÀ̸é Âü-T $aÅؽºÆ® ÆÄÀÏ$a ÆÄÀÏÀÌ ÅؽºÆ® ÆÄÀÏÀ̸é Âü(Ç¥ 1-6) ÆÄÀÏ Å×½ºÆ® ¿¬»êÀÚ
¿©±â ¸î°¡Áö ¿¹Á¦°¡ ÀÖ´Ù:
-e "/usr/bin/perl" or warn "Perl is improperly installed\n";
-f "/vmunix" and print "Congrats, we seem to be running BSD Unix\n";
¿©±â¼­ "ÀÏ¹Ý ÆÄÀÏ"Àº "ÅؽºÆ® ÆÄÀÏ"°ú ´Ù¸£´Ù´Â Á¡¿¡ ÁÖ¸ñÇϱ⠹ٶõ´Ù. /vmunix¿Í °°Àº ÀÌÁø ÆÄÀÏÀº ÀÏ¹Ý ÆÄÀÏ¿¡ ¼ÓÇÏÁö¸¸ ÅؽºÆ® ÆÄÀÏÀº ¾Æ´Ï´Ù. ÅؽºÆ® ÆÄÀÏÀº ÀÌÁø ÆÄÀÏÀÇ »ó´ëÀû °³³äÀÌ°í, ÀÏ¹Ý ÆÄÀÏÀº µð·ºÅ丮³ª ÀåÄ¡ ÆÄÀÏ(device file)°ú °°Àº °ÍÀÇ »ó´ëÀû °³³äÀ» ¶æÇÑ´Ù.
ÀÌ ¿Ü¿¡µµ »ó´çÈ÷ ¸¹Àº ¼öÀÇ ÆÄÀÏ Å×½ºÆ® ¿¬»êÀÚ°¡ ÀÖ´Ù. ´ëºÎºÐÀÇ ÆÄÀÏ Å×½ºÆ® ¿¬»êÀÚ´Â ÀÏ¿ø ºÒ¸°(Boolean) ¿¬»êÀÚÀÌ´Ù. Áï, ÇϳªÀÇ ÇÇ¿¬»êÀÚ¸¦ ÃëÇϸç ÇÇ¿¬»êÀÚ´Â ÆÄÀÏÀ̳ª ÆÄÀÏ ÇÚµéÀÌ µÇ°í, ±× ¹Ýȯ°ªÀ¸·Î Âü ȤÀº °ÅÁþÀ» °®´Â´Ù. ÆÄÀÏ Å×½ºÆ® ¿¬»êÀÚ Áß ÀϺδ ÆÄÀÏÀÇ Å©±â³ª ½Ã°£ µî Á» ´õ ÀÚ¼¼ÇÑ °ªÀ» ¹ÝȯÇÏ´Â °æ¿ìµµ ÀÖ´Ù.



Á¦¾î ±¸Á¶
Áö±Ý±îÁö ¼ºÀû ó¸® ÇÁ·Î±×·¥À» Á¦¿ÜÇÑ ¸ðµç ¿¹Á¦´Â ¼±Çü±¸Á¶¿´´Ù. Áï, ÇÁ·Î±×·¥ ³»ÀÇ ¼ø¼­´ë·Î °¢ ¸í·É¾î°¡ ½ÇÇàµÇ´Â ±¸Á¶¿´´Ù. ¶ÇÇÑ ¸î¸î ¿¹¿¡¼­´Â ´Ü¶ô ÆǺ° ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¿© »óȲ¿¡ µû¶ó ÇϳªÀÇ ¸í·É¾î°¡ ½ÇÇàµÇµçÁö ȤÀº ½ÇÇàµÇÁö ¾Êµµ·Ï ÇÏ´Â °Íµµ º¸¾Ò´Ù. ¹°·Ð ÀÌ·¯ÇÑ ¼±ÇüÀûÀÎ ÇÁ·Î±×·¥µµ ¸Å¿ì À¯¿ëÇÏÁö¸¸(½ÇÁ¦·Î ¸¹Àº ¼öÀÇ CGI ÇÁ·Î±×·¥ÀÌ ÀÌ¿¡ ÇØ´çÇÑ´Ù), Á¶°Ç½ÄÀ̳ª ·çÇÁ µîÀ» »ç¿ëÇÑ´Ù¸é º¸´Ù ÈǸ¢ÇÑ ÇÁ·Î±×·¥À» ¸¸µé ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ °üÁ¡¿¡¼­ PerlÀ» Á¦¾î ¾ð¾î¶ó°íµµ ÇÒ ¼ö ÀÖ´Ù.
ÇÁ·Î±×·¥ ³»¿¡¼­ Á¦¾î¸¦ ÇÏ·Á¸é ¸ÕÀú ¹«¾ùÀΰ¡¸¦ ÆÇÁ¤ÇØ¾ß ÇÏ°í, ¹«¾ùÀΰ¡¸¦ ÆÇÁ¤Çϱ⿡ ¾Õ¼­ ¹«¾ùÀÌ ÂüÀÌ°í ¹«¾ùÀÌ °ÅÁþÀÎÁö¸¦ ¾Ë¾Æ¾ß ÇÒ °ÍÀÌ´Ù.


ÂüÀ̶õ?
¾ÕÀÇ ¿¹¿¡¼­ ¸î¸î ¿¬»êÀÌ ÂüÀ̳ª °ÅÁþÀ» ¹ÝȯÇÑ´Ù°í Çß¾ú´Ù. ´õ ÀÚ¼¼È÷ µé¾î°¡±â Àü¿¡ Âü¿¡ ´ëÇØ ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ. PerlÀº ´Ù¸¥ ´ëºÎºÐÀÇ ÄÄÇ»ÅÍ ¾ð¾î¿Í´Â Á¶±Ý ´Ù¸£°Ô ÂüÀ» ´Ù·çÁö¸¸, Perl·Î ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Ù º¸¸é ±× Àǹ̸¦ ÆľÇÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
Perl¿¡¼­ÀÇ ÂüÀº Ç×»ó ½ºÄ®¶ó ±¸¹® ³»¿¡¼­ Æò°¡µÈ´Ù. µû¶ó¼­ ½ºÄ®¶ó°¡ °¡Áú ¼ö ÀÖ´Â ´ÙÀ½°ú °°Àº °ªµé¿¡ ´ëÇØ Âü°ú °ÅÁþÀÌ Á¤ÀǵȴÙ.
1. ""°ú "0"À» Á¦¿ÜÇÑ ¸ðµç ¹®ÀÚ¿­Àº ÂüÀÌ´Ù.
2. 0À» Á¦¿ÜÇÑ ¸ðµç ¼ýÀÚ´Â ÂüÀÌ´Ù.
3. ¸ðµç ·¹ÆÛ·±½º´Â ÂüÀÌ´Ù.
4. ±× ¹Û¿¡ Á¤ÀǵÇÁö ¾ÊÀº ¸ðµç °ªÀº °ÅÁþÀÌ´Ù.
½ÇÁ¦·Î 3¹ø°ú 4¹ø Ç×Àº 1, 2¹ø¿¡¼­ À¯ÃßÇÒ ¼ö ÀÖ´Ù. ÀÓÀÇÀÇ ·¹ÆÛ·±½º(3¹ø° ¹ýÄ¢)´Â ¹«¾ùÀΰ¡¸¦ °¡¸®Å°°í ÀÖ´Â ¹øÁö¸¦ ´ã°í ÀÖ°í, 0ÀÌ µÉ ¼ö ¾øÀ¸¹Ç·Î ÂüÀÌ´Ù. ¶ÇÇÑ Á¤ÀǵÇÁö ¾ÊÀº °ªÀº Ç×»ó 0À̰ųª ³Î(Null) ¹®ÀÚ¿­À̹ǷΠ1¹ø¿¡ ÀÇÇØ °ÅÁþÀÌ µÈ´Ù.
¶ÇÇÑ ¸¸¾à ¸ðµç °ÍÀÌ ¹®ÀÚ¿­À̶ó´Â ÀüÁ¦ÇÏ¿¡¼­ 2¹ø Ç×µµ 1¹øÀ¸·ÎºÎÅÍ À̲ø¾î ³¾ ¼ö ÀÖ´Ù. Âü°ú °ÅÁþÀ» ÆǺ°ÇÒ ¶§ ¼ýÀÚ¿¡¼­ ¹®ÀÚ¿­·ÎÀÇ °­Á¦ ÀüȯÀÌ ÀÌ·ç¾îÁø´Ù¸é, ¼ýÀÚ 0Àº ¹®ÀÚ¿­ "0"ÀÌ µÉ °ÍÀ̹ǷΠ°ÅÁþÀÌ µÈ´Ù. ±× ¿ÜÀÇ ¸ðµç ¼ýÀÚ´Â ¹®ÀÚ¿­ "0"ÀÌ µÉ ¼ö ¾øÀ¸¹Ç·Î ÂüÀÌ µÉ °ÍÀÌ´Ù.  ´ÙÀ½ ¿¹·Î ¾Õ¼­ ¼³¸íÇÑ Âü°ú °ÅÁþÀÇ °æ¿ì¸¦ ÀÚ¼¼È÷ »ìÆ캸ÀÚ.
0                # ¹®ÀÚ¿­ "0"ÀÌ µÉ °ÍÀ̹ǷÎ, °ÅÁþ
1                # ¹®ÀÚ¿­ "1"ÀÌ µÉ °ÍÀ̹ǷÎ, Âü
10 - 10        # 10-10 Àº 0, Áï ¹®ÀÚ¿­ "0"À̹ǷÎ, °ÅÁþ
0.00                # 0ÀÌ µÇ°í, ¹®ÀÚ¿­ "0"À̹ǷÎ, °ÅÁþ
"0"                # ¹®ÀÚ¿­ "0"À̹ǷÎ, °ÅÁþ
""                # ³Î ¹®ÀÚ¿­À̹ǷÎ, °ÅÁþ
"0.00"                # ³Î ¹®ÀÚ¿­µµ ¾Æ´Ï°í ¹®ÀÚ¿­ "0"µµ ¾Æ´Ï¹Ç·Î, Âü
"0.00" + 0        # + ¿¬»êÀÚ¿¡ ÀÇÇØ °­Á¦·Î ¼ýÀÚ 0ÀÌ µÇ¹Ç·Î, °ÅÁþ
\$a                # $aÀÇ ·¹ÆÛ·±½ºÀ̹ǷÎ, Âü(ºñ·Ï $a°¡ °ÅÁþÀ̾)
undef()        # Á¤ÀǵÇÁö ¾ÊÀº °ªÀ» ¹ÝȯÇÏ´Â ÇÔ¼öÀ̹ǷÎ, °ÅÁþ
if ¿Í unless
¾Õ¼­ ³í¸® ¿¬»êÀÚ°¡ Á¶°Ç¹®À» ¸¸µå´Â °æ¿ì¸¦ »ìÆ캸¾Ò´Ù. Á¶±Ý ´õ º¹ÀâÇÑ ÇüÅÂÀÇ ³í¸® ¿¬»êÀ» ÇàÇÏ´Â °ÍÀÌ ¹Ù·Î ifÀÌ´Ù. if´Â ÁÖ¾îÁø Á¶°ÇÀ» ÆÇ´ÜÇÏ¿© Á¶°ÇÀÌ ÂüÀÏ °æ¿ì if¸¦ µû¸£´Â ºí·ÏÀ» ½ÇÇàÇϵµ·Ï ÇÑ´Ù.
ºí·ÏÀº Çϳª ȤÀº ±× ÀÌ»óÀÇ ¹®ÀåÀ¸·Î ÀÌ·ç¾îÁ® ÀÖÀ¸¸ç Áß°ýÈ£ {}·Î ¹­¿© ÀÖ´Ù. if¹®ÀÌ ÇØ´ç ºí·ÏÀ» ½ÇÇàÇϱ⠶§¹®¿¡ if¸¦ »ç¿ëÇÒ ¶§¿¡´Â ¹Ýµå½Ã Áß°ýÈ£¸¦ »ç¿ëÇؾ߸¸ ÇÑ´Ù. C¾ð¾î¿¡¼­´Â ½ÇÇàÇØ¾ß ÇÒ Äڵ尡 ÇÑ ÁÙÀÏ °æ¿ì Áß°ýÈ£¸¦ »ý·«ÇÒ ¼ö ÀÖÀ¸³ª Perl¿¡¼­´Â ±×·² ¼ö ¾ø´Ù.
if ($debug_level > 0) {    # Something has gone wrong. Tell the user.
    print "Debug: Danger, Will Robinson, danger!\n";
    print "Debug: Answer was '54', expected '42'.\n";
}
¶§·Î´Â ÁÖ¾îÁø Á¶°ÇÀ» ¸¸Á·ÇÏ¿© ÇØ´ç ºí·ÏÀ» ½ÇÇàÇÏ´Â °ÍÀ¸·Î ÃæºÐÇÏÁö ¾Ê´Â °æ¿ì°¡ ÀÖ´Ù. ±×¸®°í ÁÖ¾îÁø Á¶°ÇÀ» ¸¸Á·ÇÏÁö ¾ÊÀ» ¶§ ´Ù¸¥ ºí·ÏÀ» ½ÇÇàÇϵµ·Ï ÇÒ ÇÊ¿äµµ ÀÖÀ» ¼ö ÀÖ´Ù. ¹°·Ð if¸¦ µÎ ¹ø »ç¿ëÇؼ­ ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇÒ ¼öµµ ÀÖ°ÚÁö¸¸, Perl¿¡¼­´Â ÀÌ·± °æ¿ì Á» ´õ °£°áÇÑ ¹æ½ÄÀ» »ç¿ëÇÑ´Ù. if¿¡¼­ ÇÑ ºí·Ï ´ÙÀ½¿¡ ¿É¼ÇÀ¸·Î else¶ó°í ÇÏ´Â µÎ ¹ø° Á¶°Ç¹®À» À§Ä¡ÇÏ¿© ÁÖ¾îÁø Á¶°ÇÀÌ °ÅÁþÀÏ ¶§ ¹Ù·Î ´ÙÀ½ÀÇ ºí·ÏÀ» ½ÇÇàÇÏ°Ô²û ÇÑ´Ù.
¶ÇÇÑ, µÎ °³ ÀÌ»óÀÇ °¡Áö¼ö¸¦ °®´Â Á¶°Ç¹®À» »ç¿ëÇØ¾ß ÇÒ °æ¿ìµµ ÀÖ´Ù. ÀÌ °æ¿ì °¢ Á¶°Ç½Ä¿¡ ÇØ´çÇÏ´Â elsif¸¦ °è¼Ó »ç¿ëÇÏ¿© ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù.
if ($city eq "New York") {
    print "New York is northeast of Washington, D.C.\n";
}
elsif ($city eq "Chicago") {
    print "Chicago is northwest of Washington, D.C.\n";
}
elsif ($city eq "Miami") {
    print "Miami is south of Washington, D.C.  And much warmer!\n";
}
else {
    print "I don't know where $city is, sorry.\n";
}
if¿Í elsif´Â ¼ø¼­´ë·Î ¾î´À Çϳª°¡ ÂüÀÌ µÉ ¶§±îÁö ÆǺ°µÇ¸ç, ¾Æ¹«°Íµµ ÂüÀÌ µÇÁö ¾ÊÀ¸¸é elseÀÌÇÏÀÇ ºí·ÏÀÌ ½ÇÇàµÈ´Ù. ¸¸¾à À̵é Á¶°Ç Áß ¾î´À Çϳª°¡ ÂüÀÌ µÇ¸é ÇØ´ç Á¶°Ç ¹Ù·Î ´ÙÀ½ÀÇ ºí·ÏÀÌ ½ÇÇàµÇ¸ç ³ª¸ÓÁö ¸ðµç ºí·ÏÀº °Ç³Ê¶Ù°Ô µÈ´Ù. ¸¸¾à if¹®¿¡ ÇØ´çÇÏ´Â Á¶°ÇÀÌ ÂüÀÎ °æ¿ì¿¡´Â ¾Æ¹«°Íµµ ÇÏÁö ¾Ê°í °ÅÁþÀÏ °æ¿ì¿¡¸¸ ½ÇÇàÇϵµ·Ï Çϱâ À§Çؼ­´Â if-else¹®¿¡¼­ ºó ºí·ÏÀ» »ç¿ëÇÏ´Â ¹æ¹ý, if Á¶°ÇÀ» ¹Ý´ë·Î ÇÏ´Â ¹æ¹ý("ÀÌ°ÍÀÌ ÂüÀÌ ¾Æ´Ò °æ¿ì¿¡ ¹«¾ùÀΰ¡¸¦ ½ÇÇàÇ϶ó")µîÀÌ ÀÖÀ» ¼ö ÀÖÀ¸³ª ÀÌ·± °æ¿ì¿¡´Â ´ÙÀ½°ú °°ÀÌ unless¸¦ »ç¿ëÇÏ¸é µÈ´Ù.
unless ($destination eq $home) {
    print "I'm not going home.\n";
}


¹Ýº¹(·çÇÁ) ±¸¹®
PerlÀº ³× °¡Áö ¹Ýº¹ ±¸¹®À» Á¦°øÇÑ´Ù: while, until, for, foreach. ÀÌµé ±¸¹®Àº °°Àº Äڵ忡 ´ëÇØ ¹Ýº¹ ½ÇÇàÇϵµ·Ï ÇØ ÁØ´Ù.
while°ú until ·çÇÁ
while°ú until ·çÇÁ´Â if¿Í unlessÀÇ °ü°è¿Í ºñ½ÁÇÏ´Ù. ¿ì¼± ÇØ´ç ±¸¹®ÀÇ Á¶°Ç½ÄÀ» ÆǺ°ÇÑ´Ù. ÁÖ¾îÁø Á¶°ÇÀÌ ¸¸Á·µÇ¸é(Áï while¿¡¼­ Âü, until¿¡¼­´Â °ÅÁþ) ÇØ´ç ºí·ÏÀÌ ½ÇÇàµÈ´Ù.
while ($tickets_sold < 10000) {
    $available = 10000 - $tickets_sold;
    print "$available tickets are available.  How many would you like: ";
    $purchase = <STDIN>;
    chomp($purchase);
    $tickets_sold += $purchase;
}
¸¸¾à óÀ½ºÎÅÍ ÁÖ¾îÁø Á¶°ÇÀÌ ¸¸Á·µÇÁö ¾ÊÀ¸¸é ·çÇÁ´Â ÇÑ ¹øµµ ½ÇÇàµÇÁö ¾ÊÀ½À» ÁÖ¸ñÇϱ⠹ٶõ´Ù. ¿¹¸¦ µé¾î ÀÌ¹Ì 10,000°³ÀÇ Æ¼ÄÏÀ» ÆȾҴٸé while ·çÇÁ ´ÙÀ½¿¡ ´ÙÀ½°ú °°Àº ÁÙÀ» ³Ö¾î¾ß ÇÒ °ÍÀÌ´Ù.
print "This show is sold out, please come back later.\n";
¾Õ¼­ ¼ºÀû ó¸® ¿¹Á¦ÀÇ 4¹ø° ÁÙÀº ´ÙÀ½°ú °°´Ù.
while ($line = <GRADES>) {
°ýÈ£ ¾ÈÀÇ ´ëÀÔ ¿¬»êÀÚ¿¡ ÀÇÇØ GRADES ÆÄÀÏ Çڵ鿡 ÇØ´çÇÏ´Â ÆÄÀÏÀÇ ´ÙÀ½ ÁÙÀ» Àо $lineº¯¼ö¿¡ ´ëÀÔÇÑ ÈÄ $lineÀÇ °ªÀÌ ¹ÝȯµÇ¹Ç·Î, while Á¶°Ç¹®¿¡¼­´Â $lineÀÇ °ªÀÌ ÂüÀΰ¡ °ÅÁþÀΰ¡¿¡ µû¶ó ´ÙÀ½ ºí·ÏÀÇ ½ÇÇà¿©ºÎ¸¦ °áÁ¤Áþ°Ô µÈ´Ù. ¿©·¯ºÐ Áß¿¡´Â ÆÄÀÏÀÇ ºó ÁÙÀÌ ÀԷµǸé while Á¶°Ç¹®ÀÌ °ÅÁþÀ¸·Î ÆǺ°ÇÏ°Ô µÇÁö ¾Ê°Ú´À³Ä°í »ý°¢ÇÏ´Â »ç¶÷µµ ÀÖÀ» Áö ¸ð¸¥´Ù. ±×·¯³ª Á¤´äÀº "¾Æ´Ï´Ù". ¾Õ¼­ ¸»ÇÑ ´ë·Î ÇÑ ÁÙ¾¿ ÀԷµǴ °æ¿ì ºó ÁÙÀº "\n"¿¡ ÇØ´çÇÏ´Â ÁÙ¹Ù²Þ ±ÛÀÚ¸¦ Æ÷ÇÔÇÏ°í Àֱ⠶§¹®ÀÌ´Ù. ¹°·Ð "\n"´Â ¾Õ¼­ Âü°ú °ÅÁþÀÇ Á¤ÀÇ¿¡ µû¸£¸é °ÅÁþÀÌ ¾Æ´Ï¶ó ÂüÀÌ´Ù. µû¶ó¼­ ÁÖ¾îÁø Á¶°ÇÀ» ¸¸Á·ÇÏ¿© ºó ÁÙÀÌ Áß°£¿¡ ÀÖÀ» Áö¶óµµ ·çÇÁ´Â °è¼Ó ½ÇÇàµÇ°Ô µÈ´Ù.
ÇÑÆí, ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ µµ´ÞÇϸé ÁÙ ÀÔ·Â ¿¬»êÀÚ(<>)´Â Á¤ÀǵÇÁö ¾ÊÀº °ªÀ» ¹ÝȯÇϹǷΠÁ¶°Ç½ÄÀº °ÅÁþÀÌ µÇ¾î ·çÇÁÀÇ ½ÇÇàÀÌ Á¾·áµÈ´Ù. µû¶ó¼­ Perl¿¡¼­´Â Ưº°È÷ eof ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© Å×½ºÆ®¸¦ ÇÒ ÇÊ¿ä°¡ ¾ø´Ù.
½ÇÁ¦·Î PerlÀÇ Á¶°Ç¹®¿¡¼­´Â ¸ðµç °ÍÀÌ ÀÚ¿¬½º·´°Ô µ¿ÀÛÇϵµ·Ï µðÀÚÀεǾî ÀÖ´Ù. ¿¹¸¦ µé¾î ½ºÄ®¶ó¸¦ Æ÷ÇÔÇÏ´Â ¹è¿­Àº ÀÚ½ÅÀÇ ±æÀ̸¦ ¹ÝȯÇϵµ·Ï µÇ¾î ÀÖÀ¸¹Ç·Î
while (@ARGV) {
        process(shift @ARGV);
}
À§¿Í °°Àº ¿¹¿¡¼­ @ARGVÀÇ ³»¿ëÀÌ ¸ðµÎ ¾ø¾îÁú ¶§±îÁö ·çÇÁ°¡ ½ÇÇàµÈ´Ù.
for ¹®
´Ù¸¥ ÇüÅÂÀÇ ¹Ýº¹¹®Àº for ·çÇÁÀÌ´Ù. for ·çÇÁ´Â while ·çÇÁó·³ µ¿ÀÛÇÏÁö¸¸ ¸î °¡Áö Á¡¿¡¼­ Á¶±Ý ´Ù¸£´Ù.(C ÇÁ·Î±×·¡¸Ó´Â ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.)
for ($sold = 0; $sold < 10000; $sold += $purchase) {
    $available = 10000 - $sold;
    print "$available tickets are available. How many would you like: ";
    $purchase = <STDIN>;
    chomp($purchase);
}
for ·çÇÁÀÇ Á¶°Ç¿¡´Â ÃÖ´ë 3°³ÀÇ ½ÄÀ» ÀûÀ» ¼ö ÀÖ´Ù. ·çÇÁ º¯¼öÀÇ Ãʱ⠻óŸ¦ Á¤ÇÏ´Â ½Ä, ·çÇÁ º¯¼öÀÇ »óŸ¦ Å×½ºÆ®ÇÏ´Â ½Ä, ±×¸®°í ·çÇÁ º¯¼öÀÇ »óŸ¦ º¯È­½ÃÅ°´Â ½ÄÀÌ ¹Ù·Î ±×°ÍÀÌ´Ù. ·çÇÁ°¡ ½ÃÀ۵Ǹé Ãʱ⠻óŸ¦ ¼³Á¤ÇÏ°í Á¶°Ç½ÄÀ» ÆǺ°ÇÑ´Ù. Á¶°Ç½ÄÀÇ °ªÀÌ ÂüÀÌ¸é ºí·ÏÀÌ ½ÇÇàµÈ´Ù. ºí·ÏÀÇ ³¡±îÁö ½ÇÇàµÇ°í ³ª¸é Á¶°Ç½ÄÀ» ´Ù½Ã ÆǺ°ÇÏ¿© ¿ª½Ã ÂüÀÌ¸é ºí·ÏÀ» ´Ù½Ã ¹Ýº¹ÇÑ´Ù. Á¶°ÇÀÌ ÂüÀÎ ÇÑ ºí·ÏÀÇ ½ÇÇà°ú º¯¼ö »óÅÂÀÇ º¯È­´Â °è¼Ó ÀÌ·ç¾îÁø´Ù.
foreach ¹®
PerlÀÇ ¹Ýº¹¹® Áß ¸¶Áö¸·Àº foreach ¹®ÀÌ´Ù. foreach ´Â ¹è¿­ µî°ú °°Àº ½ºÄ®¶ó °ªÀÇ ¸ðÀ½¿¡ °°Àº Äڵ带 ¹Ýº¹ ½ÇÇàÇÏ°íÀÚ ÇÒ ¶§ »ç¿ëÇÑ´Ù.
foreach $user (@users) {
    if (-f "$home{$user}/.nexrc") {
        print "$user is cool... they use a perl-aware vi!\n";
    }
}
foreach¹®¿¡¼­ °ýÈ£ ¾ÈÀÇ ½ÄÀº ¸®½ºÆ®ÀÌ´Ù. ¸®½ºÆ®ÀÇ °¢ ¿ä¼Ò°¡ Çϳª¾¿ ·çÇÁ º¯¼öÀÇ °ªÀ¸·Î ´ëÀÔµÇ¾î ·çÇÁÀÇ ºí·ÏÀÌ ½ÇÇàµÈ´Ù. ÀÌ °æ¿ì ·çÇÁ º¯¼ö´Â ¸®½ºÆ® ¿ä¼ÒÀÇ º¹»ç°ªÀÌ ¾Æ´Ï¶ó ¸®½ºÆ® °ª ¹Ù·Î ±× ÀÚüÀ̹ǷÎ, ·çÇÁ ³»¿¡¼­ ·çÇÁ º¯¼öÀÇ °ªÀ» ¹Ù²Ù¸é ¿ø·¡ ¹è¿­ÀÇ °ªÀ» ¹Ù²Ù´Â °ÍÀÌ µÈ´Ù.
¾Æ¸¶ ÀüÇüÀûÀÎ Perl ÇÁ·Î±×·¥¿¡¼­´Â for ·çÇÁº¸´Ù foreach ·çÇÁ¸¦ ¸¹ÀÌ º¸°Ô µÉ °ÍÀÌ´Ù. Perl¿¡¼­´Â foreach¹®¿¡¼­ ÇÊ¿äÇÑ ¸®½ºÆ®¸¦ ¸¸µé¾î ³»´Â °ÍÀÌ ¹«Ã´ ½±±â ¶§¹®ÀÌ´Ù. Çؽ¬ÀÇ Å°¸¦ Á¤·ÄÇÏ¿© ¸Å Å° °ª¸¶´Ù ·çÇÁ¸¦ ½ÇÇàÇÏ´Â ´ÙÀ½°ú °°Àº ¿¹Á¦µµ Perl¿¡¼­ ÈçÈ÷ º¼ ¼ö ÀÖ´Â °Í Áß ÇϳªÀÌ´Ù.
foreach $key (sort keys %hash) {
½ÇÁ¦·Î ¼ºÀû ó¸® ¿¹Á¦ÀÇ 9¹ø° ÁÙÀº ¹Ù·Î À§ÀÇ ¿¹Á¦¿¡ ÇØ´çÇÏ´Â °ÍÀÌ´Ù.
½ÇÇà ÁßÁö: next¿Í last
next¿Í last Å°¿öµå´Â ·çÇÁ ¾È¿¡¼­ÀÇ È帧À» ¹Ù²Ü ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù. ÀÌ°ÍÀº Ưº°ÇÑ °æ¿ì°¡ ¾Æ´Ï´Ù. ÇÊ¿ä¿¡ µû¶ó ·çÇÁÀÇ ½ÇÇàÀ» °Ç³Ê ¶Ù¾î¾ß ÇÒ ¶§µµ, ȤÀº ·çÇÁ Àüü¸¦ ºüÁ® ³ª°¡¾ß ÇÒ ¶§µµ ÀÖÀ» ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î UNIX °èÁ¤À» ó¸®ÇÏ´Â °æ¿ì, root³ª lp°°ÀÌ ½Ã½ºÅÛÀÌ »ç¿ëÇÏ´Â °èÁ¤Àº °Ç³Ê ¶Ù¾î¾ß ÇÒ ¶§, next Å°¿öµå¸¦ ÀÌ¿ëÇÏ¿© ÇöÀç ·çÇÁÀÇ ¸Ç ¸¶Áö¸·À¸·Î ¿Å°Ü ´ÙÀ½ ¹ø ·çÇÁ¸¦ ½ÇÇàÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù. last Å°¿öµå´Â Àüü ºí·ÏÀÇ ¸Ç ¸¶Áö¸·À¸·Î °Ç³Ê ¶Ù¾î ¸¶Ä¡ Á¶°Ç½ÄÀÌ °ÅÁþÀ» ¹ÝȯÇÑ °Íó·³ ·çÇÁ¸¦ ºüÁ® ³ª¿À°Ô²û ÇÑ´Ù. ¿¹¸¦ µé¾î ¾Æ·¡ ¿¹¿Í °°ÀÌ Æ¯º°ÇÑ °èÁ¤À» ã´Â Áï½Ã ·çÇÁ¸¦ ºüÁ® ³ª¿Àµµ·Ï ÇÏ°í ½ÍÀ» ¶§¿¡ ÀÌµé ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¸é µÈ´Ù.
foreach $user (@users) {
    if ($user eq "root" or $user eq "lp") {
        next;
    }
    if ($user eq "special") {
        print "Found the special account.\n";
        # do some processing
        last;
    }
}
¶ÇÇÑ ·çÇÁ¿¡ ·¹À̺íÀ» ÁöÁ¤ÇÑ ´ÙÀ½, ÇÊ¿äÇÑ °æ¿ì ¿©·¯ ´Ü°èÀÇ ·çÇÁ¸¦ ÇѲ¨¹ø¿¡ ºüÁ® ³ª¿Àµµ·Ï ÇÒ ¼öµµ ÀÖ´Ù. ±¸¹® º¯È¯ÀÚ(¾ÆÁ÷ ¼³¸íÇÏÁö ¾Ê¾ÒÀ½)¿Í ÇÔ²² »ç¿ëÇÏ¸é ¸Å¿ì È¿°úÀûÀ¸·Î ·çÇÁ¸¦ ºüÁ® ³ª¿Àµµ·Ï ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹¸¦ º¸ÀÚ.
LINE: while ($line = <ARTICLE>) {
    last LINE if $line eq "\n";                 # ù¹ø° ºó ÁÙÀÌ ³ª¿À¸é Á¾·á
    next LINE if $line =~ /^#/;                 # ÁÖ¼®À» °Ç³Ê¶Ù±â
    # your ad here
}
¿©·¯ºÐÀº Ȥ½Ã "Àá±ñ, ^# ¾î¼°í ÇÏ´Â ºÎºÐÀÌ ¹«¾ùÀ» ¶æÇÏÁö¿ä?" ÇÏ°í ¹°À» Áöµµ ¸ð¸¥´Ù. ÀÌ ºÎºÐÀº Á¤±Ô Ç¥Çö½Ä(regular expression)À» Æ÷ÇÔÇÑ ÆÐÅÏ ÀÏÄ¡ ½ÄÀ¸·Î¼­ ´ÙÀ½ Àý¿¡¼­ ´Ù·ê °ÍÀÌ´Ù. ¹«¾ùº¸´Ùµµ PerlÀº ÅؽºÆ® ó¸® ¾ð¾î·Î¼­, Á¤±Ô Ç¥Çö½ÄÀº PerlÀÇ ÅؽºÆ® ó¸®ÀÇ ÇÙ½ÉÀÌ´Ù.





Á¤±Ô Ç¥Çö½Ä(Regular Expression)
Á¤±Ô Ç¥Çö½ÄÀº grep, sed, awkµî°ú °°Àº ¸¹Àº ¼öÀÇ UNIX ÇÁ·Î±×·¥, vi, emacs¿Í °°Àº ¹®¼­ ÆíÁý±â, ±×¸®°í ½© µî°ú °°ÀÌ ´Ù¾çÇÑ °÷¿¡¼­ »ç¿ëµÇ°í ÀÖ´Ù. Á¤±Ô Ç¥Çö½ÄÀ» »ç¿ëÇÏ¸é º¹ÀâÇÑ ¹®ÀÚ¿­À» °£´ÜÇÑ ¹æ¹ýÀ¸·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.
Perl¿¡¼­´Â Á¤±Ô Ç¥Çö½ÄÀ» ¿©·¯ °¡Áö °æ¿ì¿¡ »ç¿ëÇÑ´Ù. °¡Àå ÈçÇÑ ¿¹´Â, ƯÁ¤ÇÑ ¹®ÀÚ¿­ÀÌ ÁÖ¾îÁø ÆÐÅÏ°ú ÀÏÄ¡ÇÏ´Â Áö ÆÇ´ÜÇÏ´Â °æ¿ìÀÌ´Ù.¿¹¸¦ µé¾î /foo/ ¿Í °°Àº °ÍÀº ÆÐÅÏ ÀÏÄ¡ ¿¬»êÀڷμ­, ÁÖ¾îÁø ¹®ÀÚ¿­ ³»¿¡ "foo"°¡ Æ÷ÇԵǾî ÀÖ´Â Áö¸¦ ÆÇ´ÜÇÏ´Â °æ¿ì¿¡ »ç¿ëµÈ´Ù.
µÎ ¹ø°´Â, ¹®ÀÚ¿­ ³»¿¡¼­ ƯÁ¤ ÆÐÅÏÀ» ãÀº ÈÄ ¿øÇÏ´Â ´Ù¸¥ ¹®ÀÚ¿­·Î ¹Ù²Ü ¶§ÀÌ´Ù. ÇÁ·Î±×·¥ ³»¿¡¼­ s/foo/bar¿Í °°ÀÌ ³ªÅ¸³»¸é "foo"¶ó´Â ¹®ÀÚ¿­À» ã°í, "foo"´ë½Å "bar"·Î ¹Ù²Ù¶ó´Â ¶æÀÌ´Ù. ÀÌ°ÍÀ» ġȯ ¿¬»êÀÚ¶ó°íµµ ÇÑ´Ù.
¸¶Áö¸·À¸·Î, split ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© ÁÖ¾îÁø µ¥ÀÌÅ͸¦ ¿øÇÏ´Â ´ÜÀ§·Î ÂÉ°³´Â µ¥¿¡µµ Á¤±Ô Ç¥Çö½ÄÀ» »ç¿ëÇÑ´Ù. ÀÌ ¶§ µ¥ÀÌÅ͸¦ ±¸ºÐÇÏ´Â ´ÜÀ§¸¦ ±¸È¹ ¹®ÀÚ(delimiter) ¶ó°í Çϸç, ±¸È¹ ¹®ÀÚ¸¦ Á¤ÀÇÇϴµ¥ Á¤±Ô Ç¥Çö½ÄÀ» »ç¿ëÇÑ´Ù. ¾Õ¼­ ¼ºÀû ó¸® ¿¹Á¦ÀÇ 5¹ø° ÁÙ°ú 12¹ø° ÁÙ¿¡¼­ °ø¹é ¹®ÀÚ¸¦ ±¸È¹ ¹®ÀÚ·Î »ç¿ëÇÏ¿© °¢ ÁÙ¿¡¼­ À̸§°ú ¼ºÀûÀ» »Ì¾Æ ³»´Â µ¥ split ¿¬»êÀÚ¸¦ »ç¿ëÇß¾ú´Ù. ÀÌ¿Í °°ÀÌ Á¤±Ô Ç¥Çö½ÄÀ» »ç¿ëÇÏ¿© ÀÓÀÇÀÇ ±¸È¹ ¹®ÀÚ¸¦ ÁöÁ¤, ÁÖ¾îÁø ¹®ÀÚ¿­À» ÂÉ°¶ ¼ö ÀÖ´Ù.
(ÆÐÅÏ ÀÏÄ¡¸¦ ÆÇ´ÜÇÏ´Â °æ¿ì ¿µ¹®ÀÚÀÇ ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â µî, ´Ù¾çÇÑ ¹æ¹ýÀ¸·Î ÆÐÅÏ ÀÏÄ¡¸¦ ÇÒ ¼ö ÀÖ°Ô²û ÇÏ´Â ¿©·¯ °¡Áö º¯È¯ÀÚ(modifier)°¡ ÀÖ´Ù. ³ªÁß¿¡ 2Àå¿¡¼­ ÀÚ¼¼È÷ ´Ù·ê °ÍÀÌ´Ù.)
Á¤±Ô Ç¥Çö½ÄÀÇ °¡Àå °£´ÜÇÑ »ç¿ë ¿¹´Â ÁÖ¾îÁø ±ÛÀÚ°¡ ÀÏÄ¡ÇÏ´Â ÁöÀÇ ¿©ºÎ¸¦ ÆÇ´ÜÇÏ´Â °æ¿ìÀÌ´Ù. ¸¸¾à ¹®ÀÚ¿­°ú °°ÀÌ ¿©·¯ ±ÛÀÚ°¡ ÁÖ¾îÁ³À» °æ¿ì, ¼­ºê ¹®ÀÚ¿­°ú °°ÀÌ ÇØ´ç ¹®ÀÚ¿­ÀÌ Æ÷ÇԵǾî ÀÖ´Â ÁöÀÇ ¿©ºÎ¸¦ ÆǺ°ÇÏ°Ô µÈ´Ù. ¿¹¸¦ µé¾î ÁÖ¾îÁø HTML ÆÄÀÏ¿¡¼­ ´Ù¸¥ HTML ÆÄÀÏ·ÎÀÇ ¿¬°áÀÌ µÇ¾î ÀÖ´Â °÷À» ¸ðµÎ ã¾Æ¼­ ³ªÅ¸³»°íÀÚ ÇÒ ¶§, ÀÌ·¯ÇÑ ¿¬°áÀº http:¶ó´Â ¹®ÀÚ¿­ÀÌ Ç×»ó ³ªÅ¸³ª¹Ç·Î ´ÙÀ½°ú °°ÀÌ Ã£À» ¼ö ÀÖ´Ù.
while ($line = <FILE> ) {
        if ($line =~ /http:/) {
                print $line;
        }
}
¿©±â¼­ =~´Â ÆÐÅÏ ÀÏÄ¡ ¿¬»êÀڷμ­ ÁÖ¾îÁø Á¤±Ô Ç¥Çö½Ä http:ÀÌ $line°ú ÀÏÄ¡ÇÏ´Â Áö »ìÆì º»´Ù. ¸¸¾à $line¿¡ "http:"¿Í ÀÏÄ¡ÇÏ´Â ¹®ÀÚ¿­ÀÌ ÀÖÀ¸¸é, if ÆǺ°½ÄÀº ÂüÀ» ¹ÝȯÇÏ°í print¸í·É¿¡ ÇØ´çÇÏ´Â ºí·ÏÀÌ ½ÇÇàµÈ´Ù. ¸¸¾à =~ ¿¬»êÀÚ¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é, PerlÀº $line´ë½Å ±âº» º¯¼öÀÎ $_¿¡¼­ Á¤±Ô Ç¥Çö½ÄÀ» ÆǺ°ÇÑ´Ù. Perl¿¡¼­´Â ´ëºÎºÐÀÇ ¿¬»êÀÚ°¡ ±âº»ÀûÀ¸·Î $_¸¦ »ç¿ëÇϵµ·Ï µÇ¾î ÀÖÀ¸¹Ç·Î, À§ÀÇ ¿¹Á¦´Â ´ÙÀ½°ú °°ÀÌ °£·«ÇÏ°Ô ¸¸µé ¼ö ÀÖ´Ù.
while (<FILE>) {
        print if /http:/;
}
À§¿Í °°ÀÌ °£´ÜÇÑ °æ¿ì ¿Ü¿¡, HTTP¿¬°á ¿ÜÀÇ ´Ù¸¥ ¸ðµç ¿¬°áÀ» ã¾Æ¾ß ÇÑ´Ù¸é ¾î¶»°Ô ÇØ¾ß ÇÒ±î? ¿¹¸¦ µé¾î "http:", "ftp:", "mailto:"µîÀ» ¸ðµÎ ã´Â °æ¿ì, ã¾Æ¾ß ÇÒ ¿¬°áÀÌ Çϳª ´Ã¾î³¯ ¶§¸¶´Ù ºñ±³ÇØ º¼ ³»¿ëÀÌ ´ÙÀ½°ú °°ÀÌ ´Ã¾î³ª¾ß ÇÒ °ÍÀÌ´Ù.
while (<FILE>) {
        print if /http:/;
        print if /ftp:/;
        print if /mailto:/;
}
Á¤±Ô Ç¥Çö½ÄÀ» »ç¿ëÇÏ¿© À§ÀÇ °æ¿ì¸¦ ´ÙÀ½°ú °°ÀÌ ´Ü¼øÈ­ÇÒ ¼ö ÀÖ´Ù. Áï ¸î °³ÀÇ ¾ËÆĺªÀ¸·Î ÀÌ·ç¾îÁø ´Ü¾î µÚ¿¡ ÄÝ·Ð(:)ÀÌ ¿À´Â ¹®ÀÚ¿­(http:, ftp:, mailto: µî)À» ã´Â °æ¿ìÀ̹ǷΠÁ¤±Ô Ç¥Çö½ÄÀ¸·Î´Â /[a-zA-Z]+:/¿Í °°ÀÌ ³ªÅ¸³¾ ¼ö ÀÖ´Ù. ¿©±â¼­ ´ë°ýÈ£([ ])´Â ¹®ÀÚ Å¬·¡½º(character class)¸¦ ÀǹÌÇÑ´Ù. a-z¿Í A-Z´Â ¸ðµç ¾ËÆĺªÀÇ ´ë, ¼Ò¹®ÀÚ¸¦ °¡¸®Å°´Â °ÍÀ¸·Î¼­, -±âÈ£´Â ¾çÂÊ ±ÛÀÚ¸¦ Æ÷ÇÔÇÏ¿© ±× »çÀÌ¿¡ ÀÖ´Â ¸ðµç ±ÛÀÚ¸¦ ³ªÅ¸³¾ ¶§ »ç¿ëÇÑ´Ù. ±×¸®°í +´Â Ưº°ÇÑ ±ÛÀڷμ­, "+¾Õ¿¡ ÀÖ´Â ±ÛÀÚ°¡ Çϳª ȤÀº ±× ÀÌ»ó"À» ³ªÅ¸³½´Ù. ÀÌ·¸°Ô ƯÁ¤ÇÑ ¹«¾ùÀΰ¡¸¦ ¹Ýº¹Çϵµ·Ï ÇÏ´Â °ÍÀ» ¼ö·®ÀÚ(quantifier)¶ó°í ÇÑ´Ù.( "/"´Â Á¤±Ô Ç¥Çö½ÄÀÇ ÀϺΰ¡ ¾Æ´Ï¶ó ÆÐÅÏ ÀÏÄ¡ ¿¬»êÀÚÀÇ ÀϺημ­, Á¤±Ô Ç¥Çö½ÄÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù´Â °ÍÀ» ¾Ë·Á ÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù.)
¾ËÆĺª°ú °°ÀÌ ÀÚÁÖ »ç¿ëµÇ´Â Ŭ·¡½º¿¡ ´ëÇØ Perl¿¡¼­´Â »ç¿ëÇϱâ Æí¸®Çϵµ·Ï ¹Ì¸® Á¤ÀÇÇØ ³õ¾Ò´Âµ¥ Ç¥ 1-7ÀÌ ±×°ÍÀÌ´Ù.
À̸§Á¤ÀÇÄÚµå°ø¹é[ \t\n\r\f]\s¹®ÀÚ[a-zA-Z_0-9]\w¼ýÀÚ[0-9]\d(Ç¥ 1-7) Á¤±Ô Ç¥Çö ¹®ÀÚ Å¬·¡½º
À§ Ŭ·¡½º´Â "ÇÑ ±ÛÀÚ¿ÍÀÇ ÀÏÄ¡ ¿©ºÎ"¸¦ ÆÇ´ÜÇÏ´Â µ¥ »ç¿ëµÊÀ» ÁÖÀÇÇϱ⠹ٶõ´Ù. Áï \w´Â ÇÑ ´Ü¾î¿Í ÀÏÄ¡ÇÏ´Â ÁöÀÇ ¿©ºÎ¸¦ ÆÇ´ÜÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, ÀϹÝÀûÀÎ ´Ü¾î¸¦ ±¸¼ºÇÏ´Â ¿µ¹®ÀÚ ÇÑ ±ÛÀÚÀÇ ÀÏÄ¡ ¿©ºÎ¸¦ ÆÇ´ÜÇÏ´Â µ¥ »ç¿ëµÈ´Ù.(µû¶ó¼­ ´Ü¾î ÀÏÄ¡¸¦ ÆǺ°ÇÏ·Á¸é ¾Õ¼­ÀÇ +¼ö·®ÀÚ¸¦ »ç¿ëÇÏ¿© \w+¿Í °°ÀÌ ³ªÅ¸³»¸é µÈ´Ù.) ¶ÇÇÑ Perl¿¡¼­´Â ÀÌµé ¹®ÀÚ Å¬·¡½ºÀÇ ±ÛÀÚ¸¦ ´ë¹®ÀÚ·Î ÇÏ¸é ±× Àǹ̰¡ ¹Ý´ë·Î µÇ´Âµ¥, ¿¹¸¦ µé¾î ¼ýÀÚ°¡ ¾Æ´Ñ °æ¿ì´Â \D¿Í °°ÀÌ ³ªÅ¸³»¸é µÈ´Ù.
(\w°¡ [a-zA-Z_0-9]¿Í ÀÏÄ¡ÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù´Â Á¡À» ÁÖÀÇÇϱ⠹ٶõ´Ù. ¸î¸î ·ÎÄÉÀÏ(locale)¿¡¼­´Â ÀϹÝÀûÀÎ ASCII¿ÜÀÇ ±ÛÀÚ¸¦ »ç¿ëÇÒ ¼öµµ Àִµ¥, ÀÌ °æ¿ì¿¡µµ \w´Â ´Ü¾î ±ÛÀÚ¸¦ ³ªÅ¸³»´Â µ¥ »ç¿ëµÈ´Ù.)
ÀÌ ¹Û¿¡ ¾ÆÁÖ Æ¯º°ÇÑ ¹®ÀÚ Å¬·¡½º·Î¼­ "."°¡ ÀÖ´Ù. "."´Â ÀÓÀÇÀÇ ÇÑ ±ÛÀÚ¿Í ÀÏÄ¡ÇÔÀ» ³ªÅ¸³½´Ù. ¿¹¸¦ µé¾î, /a./À̶ó°í ÇßÀ» °æ¿ì a¸¦ Æ÷ÇÔÇÑ ¹®ÀÚ¿­ Áß a´ÙÀ½¿¡ ¾î´À ÇÑ ±ÛÀÚ°¡ µû¶ó ¿À´Â °ÍÀ» ÀǹÌÇÑ´Ù. µû¶ó¼­ "at"³ª "am", "a+"µî°ú´Â ÀÏÄ¡ÇÏÁö¸¸, "a"´Â a´ÙÀ½¿¡ .¿¡ ÇØ´çÇÏ´Â ±ÛÀÚ°¡ ¾ø±â ¶§¹®¿¡ ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù. ÀÌ·¯ÇÑ ÆÐÅÏÀº ¹®ÀÚ¿­ ³»¿¡ ÀÓÀÇÀÇ À§Ä¡¿¡ Á¸ÀçÇÒ ¼ö ÀÖÀ¸¹Ç·Î, "oasis"³ª "camel"°úµµ ÀÏÄ¡Çϳª "sheba"¿Í´Â ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù. "caravan"ÀÇ °æ¿ì ù ¹ø° a¿Í µÎ ¹ø° a ¸ðµÎ ÀÏÄ¡ÇÏÁö¸¸, ù ¹ø° a¿¡¼­ ÀÏÄ¡ÇÏ´Â °ÍÀ¸·Î ÆÐÅÏ ÀÏÄ¡¸¦ ¸¶Ä¡°Ô µÈ´Ù.


¼ö·®ÀÚ(Quantifier)
¾Õ¼­ ¾ð±ÞÇÑ ¹®ÀÚ, ȤÀº ¹®ÀÚ Å¬·¡½º´Â ÇÑ ±ÛÀÚÀÇ ÀÏÄ¡ ¿©ºÎ¸¦ ÆǺ°Çϱâ À§ÇÑ °ÍÀÌ´Ù.  ¾Õ¼­ ¿¹¿¡¼­ º¸¾ÒµíÀÌ, ¿©·¯ °³ÀÇ ´Ü¾î ±ÛÀÚÀÇ ÀÏÄ¡ ¿©ºÎ¸¦ ¾Ë¾Æ º¸±â À§Çؼ­ \w+¸¦ »ç¿ëÇß¾ú´Ù. ¿©±â¼­ +´Â ¼ö·®ÀÚÀÇ ÀÏÁ¾À¸·Î¼­, ÀÌ ¹Û¿¡µµ ¿©·¯ °¡Áö ¼ö·®ÀÚ°¡ Á¸ÀçÇÑ´Ù. (ÀÌµé ¼ö·®ÀÚ´Â ±× °³¼ö¸¦ ³ªÅ¸³»±â À§ÇÑ ¾ÆÀÌÅÛ ¹Ù·Î µÚ¿¡ À§Ä¡ÇÑ´Ù.)
°¡Àå ÀϹÝÀûÀÎ ¼ö·®Àڴ ƯÁ¤ÇÑ ¾ÆÀÌÅÛÀÌ ÀÏÄ¡ÇÏ´Â ÃÖ¼Ò¿Í ÃÖ´ë Ƚ¼ö¸¦ ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù. ÀÌ °æ¿ì {}¾È¿¡ ½°Ç¥·Î ±¸ºÐµÈ µÎ °³ÀÇ ¼ýÀÚ·Î ÃÖ¼Ò¿Í ÃÖ´ë Ƚ¼ö¸¦ Ç¥½ÃÇÑ´Ù. ¿¹¸¦ µé¾î ºÏ¹ÌÁö¿ªÀÇ ÀüÈ­¹øÈ£¸¦ ³ªÅ¸³¾ ¶§, /\d{7,11}/°ú °°ÀÌ ÇÏ¿© ÃÖ¼Ò ¼ýÀÚ 7°³, ÃÖ´ë ¼ýÀÚ 11°³·Î ÀÌ·ç¾îÁø ÀüÈ­¹øÈ£¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ´Ù. ¸¸¾à {}¾È¿¡ ¼ýÀÚ¸¦ Çϳª¸¸ ÀûÀ¸¸é ÃÖ¼Ò¿Í ÃÖ´ë Ƚ¼ö¸¦ µ¿ÀÏÇÏ°Ô ÇÏ´Â °ÍÀ¸·Î, Áï {}¾ÕÀÇ ¾ÆÀÌÅÛÀÌ Á¤È®ÇÏ°Ô ¼ýÀÚ ¸¸Å­ ÀÏÄ¡ÇÏ´Â °ÍÀ» ³ªÅ¸³½´Ù.
¸¸¾à ÃÖ¼Ò¿Í ½°Ç¥¸¦ Àû°í Ãִ븦 ÀûÁö ¾Ê´Â °æ¿ì´Â ÃÖ´ë Ƚ¼ö°¡ ¹«ÇÑ´ë°¡ µÈ´Ù. ´Ù½Ã ¸»Çؼ­, ÃÖ¼Ò ¼ýÀÚ ÀÌ»ó ÀÓÀÇÀÇ ¼ýÀÚ ¸¸Å­ ÀÏÄ¡ÇÏ´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¿¹¸¦ µé¾î /\d{7}/ ÀÌ ±¹¹øÀ» Æ÷ÇÔÇÑ ÀüÈ­¹øÈ£ 7ÀÚ¸®¸¦ ÀǹÌÇÏ´Â µ¥ ºñÇØ /\d{7,}/Àº 7ÀÚ¸® ÀÌ»óÀÇ ¸ðµç ÀüÈ­¹øÈ£¸¦ ³ªÅ¸³»´Â °ÍÀÌ´Ù. ÀÌ¿Í ¹Ý´ë·Î ÃÖ´ë ¸î ¹ø °°Àº ±ÛÀÚÀÇ ÀÏÄ¡¸¦ Ç¥ÇöÇÏ´Â ¹æ¹ýÀº ¾øÀ¸¹Ç·Î, /.{0,5}/¿Í °°ÀÌ ÀÓÀÇÀÇ ±ÛÀÚ°¡ ÃÖ´ë 5¹ø ³ªÅ¸³ª´Â °ÍÀ¸·Î ´ë½ÅÇØ¾ß ÇÑ´Ù.
ÀÌ¿Í °°Àº ÃÖ¼Ò․ÃÖ´ë°ª¿¡ ´ëÇÑ Á¶ÇÕÀÌ ¸¹±â ¶§¹®¿¡ Perl¿¡¼­´Â À̵é Áß ¸î °¡Áö¸¦ ¹Ì¸® Á¤ÀÇÇØ ³õ¾Ò´Ù. ¾Õ¼­ º» +´Â {1,} Áï "¹Ù·Î ¾ÕÀÇ ¾ÆÀÌÅÛÀÌ ÃÖ¼Ò 1¹ø ÀÌ»ó"À» ³ªÅ¸³»´Â °ÍÀÌ´Ù. ¶ÇÇÑ *´Â {0,} Áï "¹Ù·Î ¾ÕÀÇ ¾ÆÀÌÅÛÀÌ 0¹ø, ȤÀº ±× ÀÌ»ó"À» ³ªÅ¸³»´Â µ¥ »ç¿ëµÈ´Ù. ±×¸®°í ?´Â {0,1}·Î¼­ "¹Ù·Î ¾ÕÀÇ ¾ÆÀÌÅÛÀÌ ¾ø°Å³ª, ȤÀº 1¹ø ÀÖÀ½"À» Ç¥½ÃÇÏ´Â °ÍÀÌ´Ù.
ÀÌ·¯ÇÑ ¼ö·®ÀÚ¸¦ »ç¿ëÇÒ ¶§ ÁÖÀÇÇØ¾ß ÇÒ Á¡ÀÌ ÀÖ´Ù. ÀÌµé ¼ö·®ÀÚ´Â ÁÖ¾îÁø ¹®ÀÚ¿­¿¡¼­ °¡´ÉÇÑ ÇÑ ¸¹Àº ¼öÀÇ ±ÛÀÚ¿Í ÀÏÄ¡ÇÏ·Á°í ÇÑ´Ù´Â °ÍÀÌ´Ù. ¿¹¸¦ µé¾î /\d+/¸¦ "1234567890"°ú ÀÏÄ¡½Ãų °æ¿ì, /\d+/´Â Àüü ¹®ÀÚ¿­°ú ÀÏÄ¡ÇÏ´Â °á°ú¸¦ °¡Á® ¿Â´Ù.  ¶ÇÇÑ "."¸¦ »ç¿ëÇÏ¿© ÀÏÄ¡ ¿©ºÎ¸¦ ÆǺ°ÇÒ ¶§, ¼ö·®ÀÚÀÇ »ç¿ëÀÌ ¿¹»óÄ¡ ¸øÇß´ø °á°ú¸¦ °¡Á® ¿À±âµµ ÇÑ´Ù. ¿¹¸¦ µé¾î,
spp:Fe+H20=FeO2;H:2112:100:Stephen P Potter:/home/spp:/bin/tcsh
¿Í °°Àº ¹®ÀÚ¿­ÀÌ ÁÖ¾îÁö°í "spp"¸¦ ã±â À§ÇØ /.+:/¸¦ »ç¿ëÇÒ °æ¿ì, +¼ö·®ÀÚ´Â ¾Õ¼­ ¸»ÇÑ ´ë·Î °¡´ÉÇÑ ÇÑ ¸¹Àº ¼öÀÇ ±ÛÀÚ¿Í ÀÏÄ¡ÇÏ·Á°í Çϱ⠶§¹®¿¡ °á°úÀûÀ¸·Î sppºÎÅÍ /home/spp:±îÁöÀÇ ±ä ¹®ÀÚ¿­ Àüü¿Í ÀÏÄ¡ÇÏ´Â °á°ú¸¦ °¡Á® ¿Â´Ù. ÀÌ·± °á°ú¸¦ ÇÇÇϱâ À§Çؼ­´Â ºÎÁ¤ ¹®ÀÚ Å¬·¡½º, Áï /[^:]+:/¿Í °°ÀÌ ³ªÅ¸³»¸é µÈ´Ù. ´Ù½Ã ¸»ÇØ "Çϳª ȤÀº ±× ÀÌ»óÀÇ ":"ÀÌ ¾Æ´Ñ ±ÛÀÚ¿Í ÀÏÄ¡ÇÑ ´ÙÀ½, ¸¶Áö¸·¿¡ :°ú ÀÏÄ¡"ÇÏ´Â ¹®ÀÚ¿­À» ã°Ô ÇÏ´Â °ÍÀÌ´Ù. ¿©±â¼­ ^´Â []·Î µÑ·¯ ½ÎÀÎ ¹®ÀÚ Å¬·¡½º Àüü¸¦ ºÎÁ¤ÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. Á¤±Ô Ç¥Çö½ÄÀÇ »ç¿ë¿¡ À־ ¶Ç ´Ù¸¥ ÁÖÀÇÇÒ Á¡Àº, °¡´ÉÇÑ ÇÑ ¾ÕÂÊ¿¡¼­ ÀÏÄ¡°¡ ÀϾ´Ù´Â »ç½ÇÀÌ´Ù. ÀÌ°ÍÀº ¹Ù·Î À§¿¡¼­ Ç¥½ÃÇß´ø °¡´ÉÇÑ ÇÑ ¸¹Àº ¼öÀÇ ±ÛÀÚ¿Í ÀÏÄ¡ÇÏ´Â °Íº¸´Ù ¿ì¼± ¼øÀ§°¡ ³ô°Ô µ¿ÀÛÇÑ´Ù. ¹®ÀÚ¿­¿¡¼­ÀÇ ÀÏÄ¡´Â ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î ÀÌ·ç¾îÁö¹Ç·Î, ÁÖ¾îÁø ¹®ÀÚ¿­ÀÇ ¿À¸¥ÂÊ¿¡ ´õ ±æ°Ô ÀÏÄ¡ÇÒ ¼ö ÀÖ´õ¶óµµ ¹®ÀÚ¿­ÀÇ ¿ÞÂÊ¿¡ ±× ÆÐÅÏÀÌ Á¸ÀçÇÏ¸é ±× °÷¿¡¼­ ÀÏÄ¡°¡ ÀÌ·ç¾îÁø´Ù´Â »ç½ÇÀÌ´Ù. ¿¹¸¦ µé¾î ġȯ ¸í·É(s///)À» »ç¿ëÇÏ¿© ±âº» º¯¼ö ¿µ¿ª($_)¿¡¼­ "x"·Î ÀÌ·ç¾îÁø ¹®ÀÚ¿­À» ¾ø¾Ö°í ½ÍÀ» °æ¿ì,
$_ = "fred xxxxxxx barney";
s/x*//;
À§¿Í °°ÀÌ ÇÏ¸é °á°úÀûÀ¸·Î´Â ¾Æ¹«·± Àϵµ ÀϾÁö ¾Ê´Â´Ù. ¿Ö³ÄÇϸé, x*(0 ȤÀº ±× ÀÌ»óÀÇ "x")¿¡ ÀÇÇØ ¹®ÀÚ¿­ÀÇ ½ÃÀÛ ºÎºÐ¿¡¼­ "f"°¡ ³ª¿À±âµµ Àü¿¡ ¹«Á¶°Ç ÀÏÄ¡Çϱ⠶§¹®ÀÌ´Ù.
¶Ç ¾Ë¾Æ¾ß ÇÒ °ÍÀÌ ÀÖ´Ù. ¼ö·®ÀÚ´Â ¹Ù·Î ¾ÕÀÇ ÇÑ ±ÛÀÚ¿¡¸¸ Àû¿ëµÇ±â ¶§¹®¿¡ /bam{2}/ ´Â "bamm"°ú´Â ÀÏÄ¡Çϳª "bambam"°ú´Â ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù. ¸¸¾à ÇÑ ±ÛÀÚ ÀÌ»ó°ú ÀÏÄ¡ÇÏ·Á¸é °ýÈ£¸¦ »ç¿ëÇؼ­ /(bam){2}/°ú °°ÀÌ ¹­¾î ÁÖ¾î¾ß ÇÑ´Ù.


ÃÖ¼Ò ÀÏÄ¡
¸¸¾à ±¸ ¹öÀüÀÇ PerlÀ» »ç¿ëÇϸ鼭 °¡´ÉÇÑ ÇÑ ¸¹Àº ±ÛÀÚ ¼ö¿Í ÀÏÄ¡ÇÏ´Â ±â´ÉÀ» »ç¿ëÇÏ°í ½ÍÁö ¾Ê´Ù¸é ºÎÁ¤ ¹®ÀÚ Å¬·¡½º¸¦ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. ÃֽŠ¹öÀüÀÇ Perl¿¡¼­´Â ÀÓÀÇÀÇ ¼ö·®ÀÚ µÚ¿¡ ¹°À½Ç¥(?)¸¦ Ãß°¡ÇÏ¿©, °¡´ÉÇÑ ¸¹Àº ±ÛÀÚ¼ö¿Í ÀÏÄ¡ÇÏÁö ¾Êµµ·Ï(ÃÖ¼ÒÇÑÀÇ ±ÛÀÚ¼ö¿Í ÀÏÄ¡Çϵµ·Ï) ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ¾Õ¼­ÀÇ spp¶ó´Â »ç¿ëÀÚ ¹®ÀÚ¿­ ÀÏÄ¡ÀÇ °æ¿ì, /.*?:/ ¿Í °°ÀÌ ÇÒ ¼ö ÀÖ´Ù. Áï .*?Àº .*¿Í ´Þ¸® °¡´ÉÇÑ ÇÑ ÀûÀº ¼ýÀÚÀÇ ±ÛÀÚ¿Í ÀÏÄ¡Çϱ⠶§¹®¿¡ ù ¹ø° ÄݷбîÁö(spp:)¸¸ ÀÏÄ¡ÇÏ°Ô µÈ´Ù. ÀÏÄ¡ °æ°è Á¦ÇÑƯÁ¤ ÆÐÅÏÀÇ ÀÏÄ¡ ¿©ºÎ¸¦ ÆǺ°ÇÒ °æ¿ì, ÁÖ¾îÁø ¹®ÀÚ¿­¿¡¼­ ÆÐÅÏÀÌ ÀÏÄ¡ÇÏ´Â ¸ðµç ºÎºÐ¿¡ ´ëÇØ ÆÐÅÏÀÇ ÀÏÄ¡ ¿©ºÎ¸¦ ã°Ô µÈ´Ù. ÀÌ °æ¿ì ¾ÞÄ¿(anchor)¸¦ »ç¿ëÇؼ­ ÆÐÅÏÀÌ ¹®ÀÚ¿­¿¡¼­ ÀÏÄ¡ÇÏ´Â ºÎºÐÀ» Á¦ÇÑÇÒ ¼ö ÀÖ´Ù. ¾ÞÄ¿ ÀÚü´Â ¹«¾ù°úµµ ÀÏÄ¡ÇÏÁö´Â ¾ÊÁö¸¸, ¾ÞÄ¿°¡ µÑ·¯½Î°í ÀÖ´Â ÆÐÅÏÀÇ ÀÏÄ¡¸¦ ±¸Ã¼ÀûÀ¸·Î Á¦ÇÑÇÑ´Ù´Â °ÍÀ» ÁÖ¸ñÇϱ⠹ٶõ´Ù.
Ư¼ö ¹®ÀÚ¿­ \b´Â ´Ü¾îÀÇ °æ°è¸¦ ³ªÅ¸³½´Ù. ¿¹¸¦ µé¾î
/\bFred\b/
´Â "The Great Fred"³ª "Fred the Great"¿Í´Â ÀÏÄ¡ÇÏÁö¸¸ "Frederick the Great"¿Í´Â ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù. ¿Ö³ªÇϸé, "Frederick"¿¡¼­ÀÇ "de"°¡ ´Ü¾î °æ°è¸¦ Æ÷ÇÔÇÏ°í ÀÖÁö ¾Ê±â ¶§¹®ÀÌ´Ù.
¹®ÀÚ¿­ÀÇ ½ÃÀÛ°ú ³¡À» ³ªÅ¸³»±â À§ÇÑ ¾ÞÄ¿µµ ÀÖ´Ù. ij·µ(^)Àº ¹®ÀÚ¿­ÀÇ ½ÃÀÛÀ» ÀǹÌÇÑ´Ù. ¿¹¸¦ µé¾î /^Fred/´Â "Frederick the Great"¿Í´Â ÀÏÄ¡ÇÏÁö¸¸ "The Great Fred"¿Í´Â ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù. ´Þ·¯ Ç¥½Ã($)´Â ¹®ÀÚ¿­ÀÇ ³¡À» ³ªÅ¸³½´Ù.
µû¶ó¼­ ´ÙÀ½°ú °°ÀÌ ÇßÀ» °æ¿ì,
next LINE if $line =~ /^#/;
À­ ÁÙÀº '¸¸¾à ÀÌ ÁÙÀÌ #À¸·Î ½ÃÀÛÇϸé LINE ·çÇÁÀÇ ´ÙÀ½À¸·Î °¡¶ó¡®¶ó´Â °ÍÀ» ÀǹÌÇÑ´Ù.(¿ªÀÚÁÖ: #À¸·Î ½ÃÀÛÇÏ´Â ÁÖ¼®¹®À» ó¸®ÇÒ ¶§ »ç¿ëµÈ´Ù)

¹é ·¹ÆÛ·±½º
¾Õ¼­ ¾ð±ÞÇßµíÀÌ ¼ö·®ÀÚ¸¦ »ç¿ëÇÒ °æ¿ì ÇÑ ±ÛÀÚ ÀÌ»ó¿¡ ´ëÇØ Àû¿ëÇÒ ¶§´Â °ýÈ£¸¦ »ç¿ëÇØ¾ß Çß´Ù.  Á¤±Ô Ç¥Çö½Ä ³»ÀÇ °ýÈ£´Â ÀÌ ¹Û¿¡µµ ÀÏÄ¡µÈ ÆÐÅÏÀ» ±â¾ïÇß´Ù°¡ ³ªÁß¿¡ ÀçÂüÁ¶ÇÒ °æ¿ì¿¡µµ »ç¿ëµÈ´Ù. ÀÌ °æ¿ì °ýÈ£¸¦ »ç¿ëÇßÀ» ¶§¿Í »ç¿ëÇÏÁö ¾Ê¾ÒÀ» ¶§ ÆÐÅÏÀÇ ÀÏÄ¡¿¡´Â ÀüÇô Â÷ÀÌ°¡ ¾ø´Ù. ¿¹¸¦ µé¾î /\d+/¿Í /(\d+)/´Â °¡´ÉÇÑ ÇÑ ¸¹Àº Çϳª ÀÌ»óÀÇ ¼ýÀÚ¿Í ÀÏÄ¡ÇÑ´Ù´Â Á¡¿¡¼­´Â Â÷ÀÌ°¡ ¾ø´Ù. ±×·¯³ª µÎ ¹ø°¸¸ÀÌ ÇÁ·Î±×·¥ ³»¿¡¼­ ÀÏÄ¡µÈ ÆÐÅÏÀ» ³ªÁß¿¡ ´Ù½Ã ÂüÁ¶ÇÏ°í ½ÍÀ» °æ¿ì »ç¿ëÇÒ ¼ö ÀÖ´Ù.
°ýÈ£¸¦ »ç¿ëÇØ ±â¾ïµÈ ÆÐÅÏÀ» ³ªÁß¿¡ ¾î¶»°Ô ´Ù½Ã ÂüÁ¶Çϴ°¡´Â ÀçÂüÁ¶ÇÏ´Â À§Ä¡¿¡ µû¶ó ´Þ¶óÁø´Ù. °°Àº Á¤±Ô Ç¥Çö½Ä ³»¿¡¼­´Â ¿ª½½·¡½¬(\) ´ÙÀ½¿¡ ¼ýÀÚ¸¦ Àû¾î ÁÖ¾îÁø Á¤±Ô Ç¥Çö½ÄÀÇ Ã³À½ºÎÅÍ °ýÈ£ÀÇ ¼ø¼­´ë·Î ÀçÂüÁ¶ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î HTMLÅÂ±×¿Í °°Àº ¹®ÀÚ¿­À» ãÀ» °æ¿ì, ÁÖ¾îÁø ¹®ÀÚ¿­ÀÌ "<B>Bold</B>"¶ó¸é Á¤±Ô Ç¥Çö½ÄÀ¸·Î´Â /<(.*?)>.*?<\/\1>/°ú °°ÀÌ ³ªÅ¸³¾ ¼ö ÀÖ´Ù. µû¶ó¼­ \1·Î ³ªÅ¸³½ ºÎºÐÀº ¾Õ¼­ÀÇ (.*?)¿¡¼­ ³ªÅ¸³½ ºÎºÐ°ú °°Àº "B"¸¦ ã°Ô µÈ´Ù.
Á¤±Ô Ç¥Çö½Ä ¹Û¿¡¼­´Â $µÚ¿¡ ¼ýÀÚ¸¦ Àû¾î Ç¥½ÃÇÑ ½ºÄ®¶ó º¯¼ö·Î ÀçÂüÁ¶¸¦ ÁöÁ¤ÇÑ´Ù.  ¿¹¸¦ µé¾î ¹®ÀÚ¿­¿¡¼­ óÀ½ µÎ ´Ü¾îÀÇ À§Ä¡¸¦ ¹Ù²Ù°í ½ÍÀ» °æ¿ì °£´ÜÇÏ°Ô
s/(\S+)\s+(\S+)/$2 $1/
¿Í °°ÀÌ ÇÏ¸é µÈ´Ù.
À§ÀÇ ¿¹¿¡¼­ º¸À̵íÀÌ º¯¼ö ġȯ°ú Á¤±Ô Ç¥Çö½ÄÀ» ÀÌ¿ëÇÑ ÆÐÅÏ ÀÏÄ¡·Î ÀÎÇØ PerlÀÌ ÅؽºÆ® 󸮿¡ ¶Ù¾î³ª´Ù´Â Á¡À» ¾Ë ¼ö ÀÖ´Ù.



¸®½ºÆ® ó¸®
ÀÌ ÀåÀÇ ¾Õ ºÎºÐ¿¡¼­ Perl¿¡´Â ½ºÄ®¶ó(´Ü¼ö¸¦ Ç¥½ÃÇÏ´Â µ¥ »ç¿ë)¿Í ¸®½ºÆ®(º¹¼ö¸¦ Ç¥½ÃÇϴµ¥ »ç¿ë)°¡ ÀÖ´Ù°í ¾ð±ÞÇß¾ú´Ù. ´ëºÎºÐÀÇ ÀüÅëÀûÀÎ ¿¬»êÀÚµéÀº ½ºÄ®¶ó¸¦ ó¸®Çϴµ¥ »ç¿ëµÈ´Ù. À̵éÀº ÇÑ °³ÀÇ Àμö(ÀÌÁø ¿¬»êÀÚÀÇ °æ¿ì µÎ °³ÀÇ Àμö)¸¦ ÃëÇϸç, ½ÉÁö¾î ¸®½ºÆ® ¿¬»êÀÇ °æ¿ì¿¡µµ ´Ü¼öÀÇ °á°ú°ªÀ» °®´Â´Ù.
  ¿¹¸¦ µé¾î,
@array = (1 + 2, 3 - 4, 5 * 6, 7 / 8);
°ú °°Àº °æ¿ì, ¿ìº¯¿¡´Â Á¤È®ÇÏ°Ô 4°³ÀÇ °ªÀ» °¡ÁüÀ» ¾Ë ¼ö ÀÖ´Ù. +, -¿Í °°Àº ÀϹÝÀûÀÎ ¼öÇÐ ¿¬»êÀÚ´Â °á°ú°ªÀ¸·Î Ç×»ó ½ºÄ®¶ó¸¦ ³»³õ±â ¶§¹®ÀÌ´Ù. µû¶ó¼­ ¹è¿­¿¡ °ªÀ» ´ëÀÔÇÏ´Â ¸®½ºÆ® ¿¬»ê¿¡¼­µµ ÀÌ·¯ÇÑ ´Ü¼ö °á°ú°ªÀÌ Àû¿ëµÈ´Ù.
±×·¯³ª ¸î¸î Perl¿¬»êÀÚÀÇ °æ¿ì »ç¿ëµÇ´Â ±¸¹®¿¡ µû¶ó ½ºÄ®¶ó °ªÀ» ¸¸µé°Å³ª ¸®½ºÆ® °ªÀ» ¸¸µé±âµµ ÇÑ´Ù. ÀÌ °æ¿ì ½ºÄ®¶ó ¶Ç´Â ¸®½ºÆ® °ª Áß ¾î´À °á°ú°¡ ÇÊ¿äÇÑ Áö´Â ÀÚµ¿À¸·Î °áÁ¤µÈ´Ù. ´ÙÀ½°ú °°Àº ¸î °¡Áö °³³äÀ» ÀÌÇØÇÏ¸é ¾î¶² °æ¿ì¿¡ ½ºÄ®¶ó, ȤÀº ¸®½ºÆ® °ªÀÌ »ý¼ºµÇ´ÂÁö ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.
ù°·Î, ¸®½ºÆ®´Â ¹«¾ùÀΰ¡¿¡ "µÑ·¯ ½Î¿©" ¸¸µé¾î Áø´Ù. À§ÀÇ ¿¹ÀÇ °æ¿ì, ¸®½ºÆ® ´ëÀÔ ¿¬»êÀÌ ±×°ÍÀÌ´Ù. ´ÙÀ½ 2Àå°ú 3ÀåÀÇ ¸¹Àº ¿¹¿¡¼­ LIST¸¦ Àμö·Î °®´Â ´Ù¾çÇÑ ¿¬»êÀÚ¸¦ º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ¿¬»êÀÚ´Â ¸®½ºÆ® ±¸¹®À» ¸¸µé¾î ³»´Â ¿¬»êÀÚÀÌ´Ù. ÀÌ Ã¥¿¡¼­´Â LIST¸¦ "¸®½ºÆ® ±¸¹®À» ¸¸µå´Â ¹®¹ýÀû ±¸Á¶Ã¼"¶ó´Â ±â¼úÀû ¿ë¾î·Î Á¤ÀÇÇϵµ·Ï ÇÏ°Ú´Ù. ¿¹¸¦ µé¾î sortÀÇ °æ¿ì ´ÙÀ½°ú °°Àº ¹®¹ý ¿ä¾àÀ» ãÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù.
sort LIST
ÀÌ °æ¿ì sort´Â ¸®½ºÆ®¸¦ Àμö·Î ÀüÇØ ÁØ´Ù.
µÑ°·Î, ÄÄÆÄÀϽÿ¡, LIST¸¦ °®´Â ÀÓÀÇÀÇ ¿¬»êÀÚ´Â LISTÀÇ °¢ ¿ä¼Ò¿¡°Ô ¸®½ºÆ® ±¸¹®À» Á¦°øÇÑ´Ù. µû¶ó¼­ LIST³»ÀÇ ÃÖ»óÀ§ ¿¬»êÀÚ³ª ¿ä¼Ò´Â ¸®½ºÆ®¸¦ ¸¸µé¾î ³»¾ß ÇÑ´Ù´Â °ÍÀ» ¾Ë°í ÀÖ´Ù. ¿¹¸¦ µé¾î,
sort @guys, @gals, other();
¶ó°í ÇßÀ» °æ¿ì, @guys, @gals, other()´Â °¢°¢ ¸®½ºÆ® °ªÀ» ¸¸µé¾î ³»¾ß ÇÑ´Ù´Â °ÍÀ» ¾Ë°í ÀÖ´Ù´Â ¶æÀÌ´Ù.
¸¶Áö¸·À¸·Î, ½ÇÇà½Ã¿¡, °¢ LIST¿ä¼Ò´Â ¼ø¼­´ë·Î ¸®½ºÆ®¸¦ »ý¼ºÇØ ³»¸ç, ±×¸®°í ³ª¼­ (¿©±â¼­ºÎÅÍ°¡ Áß¿äÇÔ) °¢°¢ ±¸ºÐµÈ ¸®½ºÆ®°¡ Çϳª·Î ÇÕÇØÁø ´ÙÀ½ ÇϳªÀÇ Å« ¸®½ºÆ®·Î ¸¸µé¾î Áø´Ù. ±× °á°ú ÃÖÁ¾ÀûÀ¸·Î ÇϳªÀÇ ÀÏÂ÷¿ø ¸®½ºÆ®°¡ LIST¸¦ Àμö·Î Çß´ø ÇÔ¼ö¿¡ Àü´ÞµÈ´Ù.  
¾ÕÀÇ ¿¹¿¡¼­ ¸¸¾à @guys°¡ (Fred,Barney)À̾ú°í, @gals°¡ (Wilma,Betty)¿´À¸¸ç, others()ÇÔ¼ö°¡ ÇϳªÀÇ ¿ä¼Ò¸¦ °®´Â ¸®½ºÆ® (Dino)¸¦ ¹ÝȯÇß´Ù¸é ÃÖÁ¾ÀûÀ¸·Î sort°¡ ÃëÇÏ°Ô µÇ´Â LIST´Â (Fred,Barney,Wilma,Betty,Dino)°¡ µÇ¸ç, sort°¡ ¹ÝȯÇÏ´Â °ªÀº(Barney,Betty,Dino,Fred,Wilma)°¡ µÈ´Ù. ¸î¸î ¿¬»êÀÚ´Â ¸®½ºÆ®¸¦ ¸¸µé¾î ³»±âµµ ÇÏ°í(¿¹: keys), ¶Ç ÀϺδ ¸®½ºÆ®¸¦ ¹Þ¾ÆµéÀ̱⸸ Çϸç(¿¹: print), ¶Ç ÀϺδ ´Ù¸¥ ÇüÅÂÀÇ ¸®½ºÆ®·Î º¯È¯Çϱ⵵ ÇÑ´Ù.(¿¹: sort). ´Ù¸¥ ÇüÅÂÀÇ ¸®½ºÆ®·Î º¯È¯ÇÏ´Â ¿¬»êÀÚ´Â ÇÊÅÍÀÇ ÇÑ ÇüÅ·Πº¼ ¼ö ÀÖÀ¸¸ç, ½©¿¡¼­¿Í´Â ´Þ¸® µ¥ÀÌÅÍÀÇ È帧Àº ¿À¸¥ÂÊ¿¡¼­ ¿ÞÂÊÀ¸·Î ÁøÇàÇÑ´Ù. ÀÌµé ¿¬»êÀÚ´Â Àμö¸¦ ¿À¸¥ÂÊ¿¡¼­ºÎÅÍ ÃëÇϱ⠶§¹®ÀÌ´Ù. ´ÙÀ½°ú °°ÀÌ ¸î¸î ¸®½ºÆ® ¿¬»êÀÚ¸¦ ÇÑ ÁÙ¿¡ µ¿½Ã¿¡ Ç¥±âÇÒ °æ¿ì,
print reverse sort map {lc} keys %hash;
¿ì¼± %hashÀÇ Å° °ª ¸®½ºÆ®¸¦ ¾òÀº ÈÄ mapÇÔ¼ö¿¡ Àü´ÞÇÏ°í, mapÇÔ¼ö´Â ¸ðµç Å° °ªÀ» lc ¿¬»êÀÚ¿¡ ÀÇÇØ ¸ðµÎ ¼Ò¹®ÀÚ·Î º¯È¯ÇÑ´Ù. ±× ´ÙÀ½ sortÇÔ¼ö¿¡ ÀÇÇØ ¼ø¼­´ë·Î ³ª¿­µÈ ÈÄ, reverseÇÔ¼ö¿¡ ÀÇÇØ ¸®½ºÆ® ¿ä¼ÒÀÇ ¼ø¼­¸¦ ¹Ý´ë·Î ¸¸µé°í ±× °á°ú¸¦ Ãâ·ÂÇÏ°Ô µÇ´Â °ÍÀÌ´Ù.



¿©·¯ºÐÀÌ ¸ð¸£´Â °Í
´ÙÄ¡°Ô ÇÏ°í ½ÍÁö ¾Ê¾Æ¿ä.(Áø½É!)
ÈÞ... ´Ù½Ã ÀÚ¿¬¾î·Î¼­ Perl¿¡ ´ëÇؼ­ »ý°¢ÇÒ ½Ã°£ÀÌ´Ù. ÀÚ¿¬¾î¸¦ »ç¿ëÇÏ´Â »ç¶÷µéÀº ´Ù¸¥ ¼÷·Ãµµ¸¦ °¡Áö°í ÀÖ°í, ±× ¾ð¾î¸¦ ¸»ÇÏ°í, ¸»ÇÏ´Â ¸¸Å­ ¹è¿ì°í, ±×¸®°í ÀϹÝÀûÀ¸·Î ¾ð¾î¸¦ Àß »ç¿ëÇÏ°Ô µÈ´Ù´Â °ÍÀ» ÀÎÁ¤ÇÑ´Ù. ¿©·¯ºÐÀÌ ¿µ¾îÀÇ ¸ðµç °ÍÀ» ¾ËÁö ¸øÇÏ´Â °Íó·³ PerlÀÇ ¸ðµç °Í¿¡ ´ëÇؼ­ ¾ÆÁ÷ ¾ËÁö ¸øÇÑ´Ù. ±×·¯³ª Perl¿¡¼­´Â ±×°ÍÀ̸é Á·ÇÏ´Ù. ½ÉÁö¾î ¿©·¯ºÐ¿¡°Ô ÀÚ±âÀÚ½ÅÀÇ ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ´Â °Í¿¡ ´ëÇؼ­ ¼³¸íÇÏÁö ¾Ê¾Æµµ PerlÀ» °¡Áö°í À¯¿ëÇÏ°Ô ÇÁ·Î±×·¥À» ¸¸µé ¼ö ÀÖ´Ù. ½Ã½ºÅÛ °ü¸® ¾ð¾î³ª ³×Æ®¿÷ ¾ð¾î ¶Ç´Â °´Ã¼ ÁöÇâ ¾ð¾î·Î¼­ÀÇ Perl¿¡ ´ëÇؼ­ ¼³¸íÁ¶Â÷ °ÅÀÇ ÇÏÁö ¾Ê¾ÒÁö¸¸ ¸»ÀÌ´Ù. ¾ÕÀ¸·Î ÀÌ·¯ÇÑ °Íµé¿¡ ´ëÇؼ­ ¾µ °ÍÀÌ´Ù.(»ý°¢ÇØ º¸´Ï, ÀÌ¹Ì ¾´ °Í °°´Ù)
±×·¯³ª ¸¶Áö¸·À¸·Î, ¿©·¯ºÐÀº Perl¿¡ °üÇÑ ¿©·¯ºÐ ÀÚ½ÅÀÇ °üÁ¡À» ¸¸µé±â ¹Ù¶õ´Ù. ±×°ÍÀº âÁ¶ÀÇ °íÅëÀ» ¹Þ´Â ¾ÆƼ½ºÆ®·Î¼­ÀÇ ¿©·¯ºÐÀÇ Æ¯±ÇÀÌ´Ù. ¿©·¯ºÐ¿¡°Ô ¿ì¸®°¡ ÆäÀÎÆ® ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏÁö ¿©·¯ºÐÀÌ ÆäÀÎÆ® ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏÁö´Â ¾Ê´Â´Ù. ¿Ö³ÄÇϸé ÇÑ°¡Áö ÀÏÀ» Çϴµ¥¿¡´Â ¸¹Àº ¹æ¹ýÀÌ Àֱ⠶§¹®ÀÌ´Ù.

  Hit : 11236     Date : 2008/12/18 05:04



    
¶Ë¸¶·ç ¾ÆÁ÷ ÀоÁø ¾Ê¾Ò´Âµ¥ ÀÌ ±ÛÀÌ µÎ·Á¿î ÀÌÀ¯´Â ¹»±î? 2009/01/10  
1501   Äı¸Á¶ ÆľÇÇϱâ À§ÇÑ °­Á     asd2862
11/19 8844
1500   ÇØÄ¿°¡ µÇ±âÀ§ÇØ ¾Ë¾Æ¾ßÇÒ 30°¡Áö Ãâó :ÇØÄ¿´ëÇÐ[5]     asdzxc301
12/12 12751
1499   À©µµ¿ì µµ½º ¸í·É¾î(?)[1]     asdzxc301
12/13 9547
1498   ºô°ÔÀÌÃ÷¿¡ ´ëÇؼ­[2]     asdzxc301
12/13 9392
1497   ¾î¼Àºí¸®¾î ÃÑÁ¤¸® °­Á     asdzxc301
12/13 19983
1496   ¾î¼Àºí¸®¾î °­Á 1Æí[1]     asdzxc301
12/13 13401
1495   ¾î¼Àºí¸®¾î °­Á 2Æí     asdzxc301
12/13 8549
1494   ¾î¼Àºí¸®¾î °­Á 3Æí     asdzxc301
12/13 9637
1493   ¾î¼Àºí¸®¾î °­Á 4Æí     asdzxc301
12/13 11201
1492   ¾î¼Àºí¸®¾î °­Á 5Æí     asdzxc301
12/13 20893
1491   ¾î¼Àºí¸®¾î °­Á 6Æí     asdzxc301
12/13 8626
1490   ¾î¼Àºí¸®¾î °­Á 7Æí ¸¶Áö¸·¿ä ¤¾¤¾[2]     asdzxc301
12/13 10651
1489   ÃÊÂ¥¸¦ À§ÇÑ ÆÄÀ̽ã[2]     asdzxc301
12/18 16520
1488   ÆÞ°ú ÆÄÀ̽ã ÇÁ·Î±×·¡¹Ö ¼­Àû     asdzxc301
12/18 9154
  ÆÞ1[1]     asdzxc301
12/18 11235
1486   Æ÷¸Ë ½ºÆ®¸µ ¹ö±× ºÐ¼®     asdzxc301
12/24 11377
1485   [1Àå]¹ÙÀÌ·¯½ºÀÇ Á¤ÀÇ & À§Ç輺[5]     ÀÛÀºÇØÄ¿
12/02 7288
1484   FTP ¼³Á¤ ¿À·ù¸¦ ÀÌ¿ëÇÑ ¹ö±× °ø°Ý(¸ÔÈ÷´Â °÷µµ ÀÖÀ» °ÍÀÌ°í...¾Æ´Ò¼öµµ..)¤»[4]     ÀÛÀºÇØÄ¿
11/30 7620
1483   [2Àå]¹ÙÀÌ·¯½ºÀÇ Á¾·ù¿Í Ư¡[5]     ÀÛÀºÇØÄ¿
12/10 8425
1482   bof & fsb ¿¡ À¯¿ëÇÑ ÆÞ ½ºÅ©¸³Æ®[5]     awsedr45
03/11 11659
[1][2][3][4] 5 [6][7][8][9][10]..[80]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org