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 : 10137 Date : 2008/12/18 05:04
|