1. Perl À̾߱â
  2. Perl, ±âº» ±â¼ú·ÂÀÇ µµ¾à

 

¡Ú Perl, ±âº» ±â¼ú·ÂÀÇ µµ¾à

2008³â 8¿ù 23ÀÏ ÀüÁ¾ÇÊ  

ÀÌ ÀÚ·á¿¡ ´ëÇÏ¿©

2008³â 8¿ù 23ÀÏ, ¼­¿ï Perl Mongers ±èµµÇü´Ô°ú ¿©·¯ºÐµéÀÇ ³ë·ÂÀ¸·Î "Korean Perl Workshop 2008, Rising Perl"°¡ ¿­·È½À´Ï´Ù. ¼ö ½Ã°£µ¿¾È 20ºÐÂ¥¸® Á¤±Ô¹ßÇ¥µé°ú 5ºÐÂ¥¸® ªÀº ¹ßÇ¥(Lightening Talk¶ó°í Çϳ׿ä ^^)°¡ ÀÖ¾ú°í, Åä¿äÀÏ ¿ÀÈÄ¿´À½¿¡µµ ´ëºÎºÐÀÇ Âü¼®ÀÚµéÀÌ ¿ÀÈÄ1½Ã¿¡¼­ 9½Ã±îÁö ±ä ½Ã°£µ¿¾È ÀÚ¸®¸¦ ¶ßÁö¾Ê°í Áñ°Ì°Ô ¹ßÇ¥µéÀ» µé¾ú½À´Ï´Ù.
Àú ¿ª½Ã, »õ·Î¿î À̾߱⵵ µé¾ú°í, °£È¤ ¸Ó¸®¸¦ Åë! ÇϰÔÇÏ´Â ±ú¿ìħµµ ¹Þ¾Ò½À´Ï´Ù. Perl¿¡ ´ëÇÑ »ç¶û°ú ¾ÖÁ¤¾î¸° ºñÆÇµµ ÀÖ¾ú°í, ¹«°Å¿î Áö½Ä°ú °¡º­¿î À̾߱âµéÀÌ 8½Ã°£ ³»³» °­¿¬ÀåÀ» ´Þ±¸¾ú½À´Ï´Ù.
ÀúÀÇ ºÎÁ·ÇÔ¿¡µµ ºÒ±¸Çϰí 1¼¼´ë¶ó´Â ÀÌÀ¯·Î(*^^*) °­¿¬ÀÚÀÇ ÇÑ»ç¶÷À¸·Î ÃÊ´ëµÇ¾î ¿©·¯ºÐµé²² Á¦ »ý°¢À» ¸»¾¸µå¸± ±âȸ¸¦ ¾ò¾ú½À´Ï´Ù.
´Ù¸¥ ¹ßÇ¥ÀںеéÀÇ ÈǸ¢ÇÑ ³»¿ë°ú Àç±â³ÑÄ¡´Â ¹ßÇ¥ ¼Ó¿¡ Çà»çÀÇ ¼öÁØÀ» ²ø¾î³»¸®´Â ¾Ç¿ªÀÌ µÇ¸é ¾î¶±Çϳª ÇÏ´Â °ÆÁ¤µµ ÀÖ¾úÁö¸¸, ¿ë°¨ÇÏ°Ô 2¹øÂ° ¼ø¼­¿¡ 20ºÐ ¹ßÇ¥¸¦ ¸¶ÃƽÀ´Ï´Ù. ¹ßÇ¥ 15ºÐ° 5ºÐ ³²¾Ò´Ù°í Àϱú¿öÁÖ´Â ¿¾³¯ ÀÚ¸íÁ¾ ½Ã°è¼Ò¸®°°Àº µû¸£¸ª ¼Ò¸®°¡ °¡Àå(?) ±â¾ï¿¡ ³²´Â±º¿ä ^^.
±× ³¯, ¹ßÇ¥Çß´ø ÀڷḦ Á¤¸®Çؼ­ ¿©±â ¿Ã¸³´Ï´Ù. ÀÚ·á ÀÚü¿¡´Â '¸»'ÀÌ ¾ø¾î¼­ ±×³É pdf·Î ¸¸µé±â´Â ¹¹Çؼ­ ¸»À» ±Û·Î Á¤¸®Çؼ­ °°ÀÌ ¿Ã¸³´Ï´Ù.

¹ßÇ¥³»¿ë

¾È³çÇϽʴϱî, ...(»ý·«) ¹ßÇ¥³»¿ëÀº Perl¾ð¾îÀÇ È°¿ë¿¡ À־ ±âº»ÀûÀÎ ±â¼úÀ» Çâ»ó½Ã۴µ¥ ¾î¶² °ÍÀÌ ¿ä±¸µÇ´Â°¡¿¡ ´ëÇÑ ÀúÀÇ °ßÇØÀÔ´Ï´Ù. °³ÀÎÀûÀÎ °æÇè¿¡ ºñÃß¾î º¼ ¶§, ±âÃÊÁö½ÄÀ» ÀÍÈù ÈÄ ¾î¶² °ÍÀ» Çß´õ´Ï ÇØ°á¹æ¹ýµéÀÌ ¸¹¾ÆÁö´õ¶ó´Â Áö±ØÈ÷ °³ÀÎÀûÀÎ ÀǰßÀÔ´Ï´Ù.

±× ³»¿ëÀº ´Ù¼¸ °¡Áö·Î, Regular ExpressionÀÇ Á¤º¹, ReferenceÀÇ È°¿ë, Package¸¦ »ç¿ëÇÑ ¸ðµâÈ­, CPANÀ» ÀÌ¿ëÇÏ´Â °Í, À¯¿¬ÇÔÀ» À¯ÁöÇÏ´Â °Í¿¡ ´ëÇÑ ÀǰßÀÔ´Ï´Ù.

PerlÀÇ ¹®¹ýÀº ´Ù¸¥ ¾ð¾î¿¡ ºñÇØ Å©°Ô ¾î·Æ´Ù°í »ý°¢Áø ¾Ê½À´Ï´Ù¸¸, ÀϹÝÀûÀÎ ¹®¹ýÀ» ÀÌÇØÇÏ°í ³­ ÈÄ °¡Àå ¸ÕÀú ºÎµúÇû´ø °ÍÀÌ Regular ExpressionÀ̾ú´ø °Í °°½À´Ï´Ù.
Regular ExpressionÀº PerlÀ̶ó´Â ¾ð¾î°¡ °¡Àå ÀßÇÑ´Ù´Â ÅØ½ºÆ® µ¥ÀÌÅÍÀÇ ºÐ¼®°ú ó¸®ÀÇ ÇÙ½ÉÀ» Â÷ÁöÇÕ´Ï´Ù. ´õ±¸³ª, Regular ExpressionÀº, ÀÌÁ¦, Perl°ú °°Àº ½ºÅ©¸³Æ® ¾ð¾î¿¡¼­¸¸ ±¹ÇѵǴ °ÍÀÌ ¾Æ´Ï¶ó ´Ù¾çÇÑ ¾ð¾î¿¡¼­ ³Î¸® »ç¿ëµÇ°í ÀÖ´Â ¸¸Å­ ¹Ýµå½Ã ¸¶½ºÅÍ ÇØ¾ß ÇÒ ´ë»óÀÔ´Ï´Ù.
Àú ¿ª½Ã Regular Expression¿¡ ¾î´À Á¤µµ ÀÚ½ÅÀÌ ºÙÀ¸¸é¼­ ºñ·Î¼Ò PerlÀ̶õ ¾ð¾î¸¦ Á¦´ë·Î »ç¿ëÇÒ ¼ö ÀÖ°Ú´Ù´Â »ý°¢À» °¡Áö°Ô µÇ¾ú½À´Ï´Ù.
Regular ExpressionÀÇ »ç¿ë¿¡ À־ ½Ç·ÂÀÌ ºÙÀ¸·Á¸é ¾î¶»°Ô ÇØ¾ß ÇÒ±î¿ä? ¹°·Ð ¹®¹ýÀº Àß ¾Ë¾Æ¾ßÁÒ. °ø¹é°ú ÁÖ¼®À» ¾²¶ó´ø°¡, Lazy Quantifier¸¦ »ç¿ëÇ϶ó´Â µîÀÇ ÁÁÀº Á¶¾ðµéÀÌ ÀÖ½À´Ï´Ù. ±× ¿Ü¿¡ ´õ ±â¾ïÇØ ÁÖ¼ÌÀ¸¸é ÇÏ´Â ³»¿ëÀÌ ÀÖ½À´Ï´Ù.

ù°´Â ¾ö°ÝÇÔÀÔ´Ï´Ù.
Regular ExpressionÀ¸·Î ºÐ¼® ó¸®ÇÒ µ¥ÀÌÅͰ¡ ¾ö°ÝÇÑ Çü½ÄÀ» °®Ãß°í ÀÖ´Ù¸é Å« ¹®Á¦°¡ µÇÁö ¾Ê½À´Ï´Ù. ±×·¯³ª, µ¥ÀÌÅÍ¿¡´Â ¿¹ÃøÇϱ⠾î·Á¿î °ÍµéÀÌ ¸¹½À´Ï´Ù. ÀÌ·¯ÇÑ º¯Ä¢¿¡ ´ëÇØ¼­ ¾ïÃøÇÏÁö ¾Ê¾Æ¾ß µÈ´Ù´Â °ÍÀÔ´Ï´Ù.
¿ÞÂÊ¿¡ ¼³Á¤ÆÄÀÏÀÇ ÀϹÝÀûÀÎ ¸ð½ÀÀ» º¸¿©ÁÖ°í Àִµ¥¿ä, Ưº°ÇÑ Á¡Àº ¾ø¾î º¸ÀÌÁÒ. ÀÌ µ¥ÀÌÅÍ¿¡¼­ ¼³Á¤ Ű¿Í ¼³Á¤ °ªÀ» ÃßÃâÇÏ´Â Äڵ尡 ¿À¸¥ÂÊ¿¡ ÀÖ½À´Ï´Ù. ±¦Âú¾Æ º¸ÀÌÁÒ?
ÇÏÁö¸¸ ÆÄÀÏ À̸§ÀÌ equalÀ̶ó¸é ¾î¶»°Ô µÉ±î¿ä? ÀÌ °æ¿ì $value º¯¼ö¿¡´Â equal »çÀÎÀÌ ¾Æ´Ï¶ó ºó ¹®ÀÚ¿­ÀÌ assignµË´Ï´Ù. ¿øÄ¡ ¾Ê´Â °á°úÁÒ. ÆÄÀÏ À̸§¿¡ ´ëÇØ ¾ïÃøÇ߱⠶§¹®¿¡ ÀÌ·± ¿À·ù°¡ ³ª¿À´Â °ÍÀÌÁÒ. ¼öÁ¤Àº Á¡ ´ë½Å¿¡ \w¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ¹°·Ð ¿©±â¿¡ °ø¹é±îÁö ó¸®ÇØ ÁÖ¸é ´õ ¿ÏÀüÇϰڽÀ´Ï´Ù.

µÎ ¹øÂ°µµ ºñ½ÁÇÑ º¸±âÀÔ´Ï´Ù¸¸ µ¥ÀÌÅÍ º¸´Ù´Â Regular Expression ¿£ÁøÀÌ ¾î¶»°Ô µ¿ÀÛÇϴ°¡¿¡ ´ëÇÑ ³»¿ëÀÔ´Ï´Ù.
º¯¼ö $txt¿¡ "Korean Perl Workshop 2008"À̶ó´Â ¹®ÀÚ¿­ÀÌ ÀÖ°í, ±× ¿À¸¥ ÂÊÀÇ ÄÚµå·Î $year º¯¼ö¿¡ ¼ýÀÚ¸¦ ÃßÃâÇÏ¿© ÀúÀåÇÏ·Á°í ÇÕ´Ï´Ù.
$year º¯¼ö¿¡´Â ¾î¶² °ªÀÌ µé¾î°¥±î¿ä? 2008ÀÌ ¾Æ´Ï¶ó°í »ý°¢ÇÏ½Å´Ù¸é ¼¾½º°¡ ÀÖ´Â ºÐÀ̽ʴϴÙ. ÀÌ °æ¿ì $year¿¡´Â 8ÀÌ µé¾î°©´Ï´Ù. À̸¥¹Ù greedy quantifierÀÇ Æ¯¼º ¶§¹®ÀÔ´Ï´Ù. ¾ÕÀÇ .* ÆÐÅÏÀÌ °¡´ÉÇÑ ¸¹Àº ¹®ÀÚµéÀ» ¸Ô¾î Ä¡¿î ÈÄ ¼ýÀÚ character class¿¡ ¸Ç ³¡ÀÇ 8ÀÚ Çϳª¸¸ ³²°ÜÁֱ⠶§¹®ÀÌÁÒ.
ÀÌ °æ¿ì * µÚ¿¡ ? Çϳª¸¦ ºÙ¿©ÁÖ¸é ÇØ°áµË´Ï´Ù.

Á¤¸®Çϸé, ÀԷµǴ µ¥ÀÌÅÍ¿¡ ´ëÇØ ¾ïÃøÇϱ⠺¸´Ù´Â Regular ExpressionÀ» ¾ö°ÝÇÏ°Ô ¸¸µé¾î¼­ ´Ù¾çÇÑ °æ¿ì¿¡ ´ëºñÇÒ ¼ö ÀÖ¾î¾ß Çϰí, Regular ExpressionÀ» ¸¸µé¸é ±× °á°ú¸¦ ¼Ó´ÜÇÏÁö ¸»°í Â÷ºÐÈ÷ µûÁ®º¸´Â ½À°üÀ» °¡Á®¾ß Regular ExpressionÀ» Á¦´ë·Î ¾µ ¼ö ÀÖ°Ô µÈ´Ù´Â °ÍÀÌÁÒ.

±×·¡¼­, Å×½ºÆ®°¡ ¶Ç °­Á¶µË´Ï´Ù.
Regular ExpressionÀ» ¾ö°ÝÇÏ°Ô ¸¸µå´Â °Í ¸¸Å­ È®ÀÎÇØ º¸´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù. Á¶±ÝÀÌ¶óµµ º¹ÀâÇÏ´Ù°í ´À²¸Áö¸é ½ÇÁ¦ ÇÁ·Î±×·¥¿¡ »ç¿ëÇϱâ Àü¿¡ Å×½ºÆ®¸¦ °ÅÃĺ¸½Ã±â ¹Ù¶ø´Ï´Ù. Regular ExpressionÀÌ Á¦´ë·Î ¸¸µé¾îÁ³´ÂÁö È®ÀÎÇϱâ À§ÇÑ ¹æ¹ýÀº ´Ù¾çÇÑ ³»ºÎº¯¼öµéÀ» Ȱ¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ¿©±â º¸ÀÌ´Â °Íó·³ PerlÀº Regular Expression°ú °ü·ÃÇÑ ´Ù¾çÇÑ ³»ºÎº¯¼öµéÀ» °¡Áö°í ÀÖ½À´Ï´Ù.
¾Õ¿¡¼­ º¸¿©µå¸° ÀÌ À߸øµÈ Regular Expression¿¡¼­ $yearº¯¼ö¸¦ Ãâ·ÂÇØº¸´Â °£´ÜÇÑ Å×½ºÆ®¸¸ ½ÇÇàÇØµµ ½ÇÁ¦ »ç¿ë Àü¿¡ ¹®Á¦¸¦ ã¾Æ³»°í °íÄ¥ ¼ö ÀÖ½À´Ï´Ù. ÇϹ°¸ç º¹ÀâÇÑ Regular Expression¿¡¼­´Â ´õ ¸»ÇÒ Çʿ䵵 ¾ø°ÚÁÒ.
ÀÌ·¸°Ô È®ÀÎÀ» À§ÇÑ °£´ÜÇÑ Äڵ带 ¸¸µé¾î¼­ Á¦´ë·Î ¸¸µç °ÍÀÎÁö °ËÅäÇÏ´Â ½À°üÀ» °¡Áö¸é Regular Expression°ú Perl¿¡ ´ëÇÑ skill Çâ»ó¿¡ Å« µµ¿òÀÌ µÇ¸®¶ó È®½ÅÇÕ´Ï´Ù.

´ÙÀ½Àº Reference¿¡ ´ëÇÑ ³»¿ëÀÔ´Ï´Ù.
PerlÀÇ Reference´Â C¾ð¾îÀÇ Pointer¿Í °°Áö´Â ¾ÊÁö¸¸ À¯»çÇÑ °Í °°½À´Ï´Ù. Reference¸¦ Àß ÀÌÇØÇÏ°í »ç¿ëÇϸé PerlÀÇ È°¿ëµµ°¡ ³ô¾ÆÁý´Ï´Ù.

Reference´Â ¹è¿­À̳ª ÇØ½¬ ÀÚü¸¦ ¼­ºê·çƾÀ¸·Î ³Ñ±â°Å³ª ¼­ºê·çƾ¿¡¼­ return ¹ÞÀ» ¶§ »ç¿ëµÇ´Â µî ¿©·¯°¡Áö Ȱ¿ëÀÌ ¸¹Áö¸¸, Á¦°¡ °¡Àå ¸¹ÀÌ È°¿ëÇÏ´Â °ÍÀº µ¥ÀÌÅ͸¦ ±¸Á¶È­ ÇÏ´Â °ÍÀÔ´Ï´Ù.
À§ "AA»óǰÀ» ±¸¸ÅÇÑ ±¤Áø±¸ È«±æµ¿¾¾, 3½Ê¸¸¿ø¿¡ »ò°í ±î´Ù·Ó´Ù"¶ó´Â »óǰ°ú °í°´ÀÇ ±¸¸Å°ü°è¿¡ ´ëÇÑ Á¤º¸¸¦ ÀúÀåÇÏ´Â µÎ °¡Áö ¹æ¹ýÀÌ ¾Æ·¡¿¡ Ç¥ÇöµÇ¾ú½À´Ï´Ù. À§ÂÊÀº ¼­·Î °ü°èµÈ µ¥ÀÌÅͰ¡ Á¦°¢°¢ ¶³¾îÁ®¼­ °³º°ÀûÀÎ ÇØ½¬µé·Î µé¾î°©´Ï´Ù.
¾Æ·¡ÂÊÀº °ü°èµÈ µ¥ÀÌÅͰ¡ database¶ó´Â ÇϳªÀÇ ÇØ½¬¿¡ ¸ðµÎ µé¾î°©´Ï´Ù.
¾î´À ÂÊÀÌ ÀбⰡ ÁÁ½À´Ï±î? ¾Æ·¡ÂÊÀÌÁÒ.
Reference¸¦ »ç¿ëÇϸé ÀÌ·¸°Ô µ¥ÀÌÅ͸¦ ±¸Á¶È­ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì´Â ÇØ½¬ÀÇ ÇØ½¬ÀÇ ÇØ½¬Àä, ÇØ½¬ÀÇ ¹è¿­, ¹è¿­ÀÇ ÇØ½¬, ÇØ½¬ÀÇ ¹è¿­ÀÇ ÇØ½¬ÀÇ ¹è¿­ÀÇ ÇØ½¬ÀÇ ¹è¿­ÀÇ ¹è¿­ÀÇ ÇØ½¬µµ ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ½ÉÁö¾î´Â ¼­ºê·çƾÀÇ ¸®ÆÛ·±½º¸¦ ÀúÀåÇØ¼­ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
¸¸ÀÏ Perl¿¡ Reference°¡ ¾ø¾ú´Ù¸é, Á¦°¡ °è¼ÓÇØ¼­ PerlÀ» »ç¿ëÇßÀ»±î ÇÒ Á¤µµ·Î Àú °³ÀÎÀûÀ¸·Î´Â ¹Ýµå½Ã ¾Ë¾Æ¾ß¸¸ PerlÀÇ È°¿ëµµ°¡ Ä¿Áö´Â ±â¼úÀ̶ó°í »ý°¢ÇÕ´Ï´Ù.
¾ÆÁ÷ Reference¸¦ ¸¹ÀÌ »ç¿ëÇÏÁö ¾ÊÀ¸½Å´Ù¸é Á¶±Ý¸¸ ¹®¼­¸¦ °Åµé¶° º¸½Ã±â ¹Ù¶ø´Ï´Ù.

´ÙÀ½Àº Package¿¡ °üÇÑ ³»¿ëÀÔ´Ï´Ù.
Package´Â °´Ã¼ÁöÇâÀû ÇÁ·Î±×·¡¹ÖÀÇ µµ±¸À̱⵵ ÇÕ´Ï´Ù¸¸, ¿À´Ã ¿©±â¼­´Â ³Ê¹« ±í°Ô °¡Áö ¸»°í ¸ðµâÈ­¿¡ ´ëÇØ¼­¸¸ À̾߱â ÇϰڽÀ´Ï´Ù.
Package¸¦ ¼¼ ¹øÂ° '¹Ýµå½Ã ¾Ë¾Æ¾ß ÇÒ °Í'À¸·Î ²ÅÀº ÀÌÀ¯´Â ÀÌ °ÍÀÌ º¹ÀâÇÑ ÇÁ·Î±×·¥¿¡ À־ ƯÁ¤ °ü½É»ç¿¡ ´ëÇØ ´Ù·ç´Â ¼­ºê·çƾµéÀ» ¹­¾î³»´Âµ¥ ÇʼöÀûÀÎ ±â¼úÀ̱⠶§¹®ÀÔ´Ï´Ù.

¿ÞÂÊÀº ÇÑ ¹¶Ä¡ÀÇ ¼­ºê·çƾµéÀ̳׿ä.
Get ¾î¼°í Àú¼°í¡¦
¿À¸¥ÂÊÀº Á» ´õ ü°è°¡ ÀÖ¾î º¸ÀÔ´Ï´Ù.
Reference¿¡¼­ º» ¸ð¾ç°ú ºñ½ÁÇÕ´Ï´Ù.
¡¦ »ç½Ç Reference°¡ ¸Â½À´Ï´Ù¸¸, ¿©±â¼­´Â °´Ã¼ ¶Ç´Â ¸ðµâÀ̶ó°í ºÎ¸£´Â °ÍÀÌ ÁÁ°Ú½À´Ï´Ù.
¿ÞÂÊÀÇ °æ¿ì´Â ¸ðµç °ü½É»ç¸¦ È¥ÀÚ¼­ ´Ù ´Ù·ç´Â ¸ð¾çÀÔ´Ï´Ù.
¹Ý¸é, ¿À¸¥ÂÊÀº disk¿¡ ´ëÇÑ °ü½É»ç´Â disk°´Ã¼°¡, memory¿¡ ´ëÇØ¼­´Â mem °´Ã¼°¡, cpu´Â cpu °´Ã¼°¡ ´Ù·ç´Â °ÍÀ¸·Î º¸ÀÔ´Ï´Ù.
ÀÌ·¸°Ô, °£ÆíÇÏ°Ô °ü½É»ç¸¦ ºÐ¸®Çؼ­ ´Ù·ê ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀÌ PackageÀÔ´Ï´Ù.
OOP¶ó°í ¸»Çϴµ¥, ¿©±â¼­´Â ¼Ò±ØÀûÀ¸·Î °ü½É»ç¶ó°í ¸»ÇϰڽÀ´Ï´Ù.
ÀÌ·¸°Ô °ü½É»ç¸¦ ºÐ¸®Çϸé ÇÁ·Î±×·¥À» ¸¸µé°í À¯ÁöÇϱⰡ ÆíÇØÁý´Ï´Ù. Main ÆÐŰÁö¿¡¼­´Â ´Ù¸¥ ÆÐŰÁö¸¦ ºÒ·¯¼­ »ç¿ëÇÒ »ÓÀÌ´Ï ±× ÆÐŰÁö¿Í main ÆÐŰÁöÀÇ ·ÎÁ÷Àº ºÐ¸®µÇ°í, µû¶ó¼­ main ÆÐŰÁöÀÇ ·ÎÁ÷ÀÌ ´Ü¼øÇØÁý´Ï´Ù. °ü½É»çÀÇ ºÐ¸®´Â ´Ù¸¥ Ç¥ÇöÀ¸·Î ¹®Á¦ÀÇ ºÐ¸®¶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù.
º¹ÀâÇÑ ¹®Á¦¸¦ º¹ÀâÇÏ°Ô Ç®¾î ³»´Â °ÍÀÌ ½Ç·ÂÀº ¾Æ´ÏÁÒ. º¹ÀâÇÑ ¹®Á¦¸¦ ´Ü¼øÇÑ ¹®Á¦µé·Î ºÐ¸®ÇØ ³»´Â °ÍÀÌ ½Ç·ÂÀ̶ó°í º»´Ù¸é, ÆÐŰÁö¸¦ »ç¿ëÇØ¼­ ¹®Á¦¸¦ ºÐ¸®ÇØ ³¾ ¼ö ÀÖ¾î¾ß PerlÀÇ skillÀÌ Çâ»óµÈ °ÍÀ̶ó°í ¸»ÇÒ ¼ö ÀÖ°ÚÁö¿ä.

¿ÞÂÊÀº ÆÐŰÁö¿Í ±×¿¡ ¼ÓÇÏ´Â ¼­ºê·çƾÀ» ¸¸µå´Â ´Ü¼øÇÑ ¿¹Á¦·Î MyPackage.pm ÆÄÀÏÀÇ ³»¿ëÀ̰í, ¿À¸¥ÂÊÀº ±× ÆÐŰÁö¸¦ »ç¿ëÇÏ´Â ÄÚµåÀÔ´Ï´Ù.
ÀÌ ³»¿ëÀ» ´Ù ¼³¸í µå¸®Áø ¾Ê°Ú½À´Ï´Ù.
±íÀÌ µé¾î°¡ÀÚ¸é ÀÌ º¸´Ù ´õ ¸¹Àº ³»¿ëÀ» ¾Ë¾Æ¾ß ÇÏÁö¸¸, Package¸¦ óÀ½ ¸¸µé¾î¼­ ½ÃÀÛÇÏÀÚ¸é ÀÌ Á¤µµ ¸¸À¸·Îµµ Ãâ¹ßÀº ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» º¸¿© µå¸®±â À§Çؼ­ ¸¸µç °£´ÜÇÑ ÄÚµåÀÔ´Ï´Ù.
¶Ç, ´«Ä¡ ä¼Ì°ÚÁö¸¸, Package¿¡¼­µµ reference´Â Áß¿äÇÑ ºÎºÐÀ» Â÷ÁöÇϰí ÀÖ´Ù´Â Á¡µµ ¸»¾¸ µå¸®°í ½Í½À´Ï´Ù.
Package¸¦ ¸¸µêÀ¸·Î½á ÀÚ½ÅÀÇ Äڵ带 ¹èÆ÷ÇÏ´Â °Íµµ ½¬¿öÁý´Ï´Ù. ÆÐŰÁö¿Í ÆÐŰÁöÀÇ »ç¿ëÀÌ ¿ÏÀüÈ÷ ºÐ¸®µÉ ¼ö Àֱ⠶§¹®ÀÌÁÒ.
¹°·Ð subroutineµéÀ» ¸ð¾Æ³õ°í À̸¦ requireÇØ¼­ ¾²´Â ¹æ¹ýµµ ÀÖÁö¸¸, ±× °æ¿ì´Â µ¥ÀÌÅ͸¦ main ·ÎÁ÷°ú ¶óÀ̺귯¸® °£¿¡ ºÐ¸®ÇϱⰡ ½±Áö ¾ÊÁÒ.
Àú´Â, Package¸¦ »ç¿ëÇÏ°Ô µÇ¸é Perl¿¡ °üÇÑ ±â¼ú·Â¿¡ À־ ÇÑ Â÷¿ø ³ôÀº ´Ü°è·Î ¿Ã¶ó°¡´Â °ÍÀ̶ó°í °¨È÷ ¸»¾¸ µå¸³´Ï´Ù.
¾ÆÁ÷ Package¸¦ ¸¸µé¾îº¸Áö ¾ÊÀ¸¼Ì´Ù¸é, ²À ¹®¼­µéÀ» Àо½Ã°í PerlÀ» ´õ¿í Áñ±æ ¼ö Àֱ⸦ ¹Ù¶ø´Ï´Ù.

´ÙÀ½Àº CPAN¿¡ °üÇÑ ³»¿ëÀÔ´Ï´Ù.
Package¸¦ ¸¸µé¾î¼­ »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ¸é, ÄÚµåµéÀÌ ´Ü¼øÇØÁö°í À¯ÁöÇϱ⵵ ÁÁ½À´Ï´Ù.
ÇÏÁö¸¸, Package¸¦ Á÷Á¢ ¸¸µé±â Àü¿¡ ¸ÕÀú CPAN¿¡ µé·¯ º¸½Ã±æ °­·ÂÈ÷ ±ÇÇÕ´Ï´Ù.
ÀÌ¹Ì ÀÖ´Â °ÍÀ̶ó¸é ±»ÀÌ Á÷Á¢ ¸¸µé ÇÊ¿ä´Â ¾øÁÒ.

PerlÀ» ¹è¿îÁö ¾ó¸¶ ¾ÈµÅ¼­ ¾î¶² ½Ã½ºÅÛÀÇ Æ¯Á¤ µð·ºÅ͸® Æ®¸® ¾Æ·¡¿¡ ƯÁ¤ ÆÄÀϵéÀ» Áö¿ö¾ß ÇÏ´Â ÀÏÀÌ ÀÖ¾ú½À´Ï´Ù.
Àß ±â¾ïÀÌ ¾È ³³´Ï´Ù¸¸, RecursiveÇÑ ¼­ºê·çƾÀ» ¸¸µé¾î¼­ ó¸®ÇßÁÒ.
¿ÞÂÊÀÌ Á¦°¡ Àç¹ß¸íÇÑ ¹ÙÄû¡¦µµ ¾Æ´Ï°í ``¹Ù²Ù''ÀÔ´Ï´Ù. ^^
¹¹°¡ Àß ¸øµÇ¾úÀ»±î¿ä? ¡¦ ÇöÀç µð·ºÅ͸®¿Í parent µð·ºÅ͸®¿¡ ´ëÇÑ Ã³¸®¸¦ »©¸Ô¾ú½À´Ï´Ù. ±× °á°ú Àß ¸ø ¸¸µç ÄÚµå ¶§¹®¿¡ ½Ã½ºÅÛÀ» ³¯·Á¹ö¸± »· Çß´ø¡¦ ÀÏÀÌ ÀÖ¾ú´ø°ÅÁÒ. ^^
CPAN¿¡¼­ File::Find¶ó´Â ¸ðµâÀ» ã¾Æ¼­ ½è´Ù¸é, Àϵµ °£´ÜÇϰí, »ç°íµµ ¾ø¾úÀ» ÀÏÀÌÁÒ.
¿À¸¥ ÂÊÀº Á¤»óÀûÀÎ ¹ÙÄû, File::Find¸¦ »ç¿ëÇÑ ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ÈξÀ ´õ °£´ÜÇØÁö°í ½Ç¼öÀÇ ¿ì·Áµµ ¾ø´Â ¹öÀüÀÌÁÒ.
¹º°¡ °í¹ÎÀÌ »ý°å´Ù¸é ¸ÕÀú CPAN »çÀÌÆ®¸¦ ã¾Æ°¡½Ã°í, °Å±â ¾ø´Ù¸é ÁøÂ¥ ¹ß¸íÀ» ÇϼžßÁÒ.

CPANÀº ¶óÀ̺귯¸®ÀÇ ÁýÇÕÀÏ »Ó¸¸ ¾Æ´Ï¶ó, PerlÀÇ Á¤½ÅÀ̶ó°í »ý°¢ÇÕ´Ï´Ù.
Perl Á¤½ÅÀÇ ¶Ç ´Ù¸¥ ±¸ÇöüÀ̰í, CPANÀÌ ÀÖÀ½À¸·Î½á ºñ·Î¼Ò PerlÀÌ ¿ÏÀüÇØÁ³´Ù´Â »ý°¢ÀÌ µì´Ï´Ù.
CPAN¿¡´Â °¡º­¿î ¶óÀ̺귯¸®ºÎÅÍ, µ¥ÀÌÅͺ£À̽º, GUI, ³×Æ®¿öÅ©, ÇÁ·¹ÀÓ¿öÅ©¿¡ À̸£±â ±îÁö ´Ù¾çÇÑ ¸ðµâµéÀÌ ÀÖ½À´Ï´Ù.
¿©±â ²À ¸Â´Â °Ý¾ðÀÌ ÀÖÁÒ. ``²À ÇÊ¿äÇÑ ¸ðµâÀº Ç×»ó Á¸ÀçÇÑ´Ù''
ÀÌ CPANÀ» Àß È°¿ëÇÏ´Â °Í ¸¸À¸·Îµµ ``¿À! Perl ²Ï³ª Çϴµ¥?'' , ÀÌ·± ¼Ò¸± µéÀ» ¼ö ÀÖÀ» °Ì´Ï´Ù.
»ç¿ëÇÏ´Â ¸ðµâÀÇ ³»¿ëÀ» ´õ ¾Ë°í ½Í´Ù? ±×·¯¸é CPAN¿¡ Á¦°øµÈ ¸ðµâµéÀ» Á÷Á¢ ¿­¾î º¸½Ê½Ã¿À. ¹°·Ð, C¸¦ »ç¿ëÇØ¼­ PerlÀ» È®ÀåÇÏ´Â ¸ÞÄ¿´ÏÁò¿¡ ´ëÇÑ ÀÌÇØ°¡ ÀÖ¾î¾ß ¿ÂÀüÇÑ ÀÌÇØ°¡ µÇ°ÚÁö¸¸, ±»ÀÌ ±×·¸Áö ¾Ê´õ¶óµµ ¸¹Àº ¿µ°¨À» ¾òÀ» ¼ö ÀÖÀ» °Ì´Ï´Ù.

°í¾çÀ̰¡ »ýÁ¸ÇÏ´Â µ¥ ÀÖ¾î À¯¿¬ÇÔÀ̾߸»·Î °¡Àå Å« ÈûÀÌ µÇÁö ¾ÊÀ»±î »ý°¢µË´Ï´Ù.
½Î°¡Áö°¡ Á» ¾ø´Ù´Â °ÍÀ» »©¸é ¸ÚÁø µ¿¹°ÀÌÁÒ. ^^
´Ù¸¥ ¾ð¾î¿¡¼­µµ ¸¶Âù°¡ÁöÁö¸¸, PerlÀ» »ç¿ëÇÔ¿¡ À־µµ À¯¿¬ÇÔÀº Å« ¹«±âÀÔ´Ï´Ù.
º¸ÅëÀº ½Ç·ÂÀÌ ÀÖ¾î¾ß À¯¿¬ÇØÁö°ÚÁö¸¸, Perl¿¡ À־´Â À¯¿¬ÇÑ Á¤½Å ±× ÀÚü°¡ ½Ç·ÂÀ̶ó´Â »ý°¢ÀÌ µì´Ï´Ù.

¿ÞÂÊ¿¡ ±¹°¡º° Àα¸ µ¥ÀÌÅͰ¡ ÀÖ½À´Ï´Ù.
ÀÌ µ¥ÀÌÅ͸¦ ¿ÞÂÊ ¾Æ·¡Ã³·³ Àα¸ ¼øÀ¸·Î Á¤·ÄÇÏ¿© Ãâ·ÂÇÏ´Â °ÍÀÌ ¼÷Á¦ÀÔ´Ï´Ù.
¿À¸¥ÂÊ À§¿¡´Â Á» ±ä ¹öÀüÀÇ ½ºÅ©¸³Æ®°¡ ÀÖ°í, ±× ¾Æ·¡¿¡´Â map, sort µîÀ» ÇÑ ÁÙ¿¡ ³ª¿­ÇÑ ÂªÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ¾î¶² °ÍÀÌ ¿ÇÀº ´äÀϱî¿ä?

¡¦

¸ðµÎ ¿Ç½À´Ï´Ù.
±×·³, ¾î¶² °ÍÀÌ ´õ ³ªÀº ´äÀϱî¿ä?

¡¦

°¡¸± ¼ö ¾ø½À´Ï´Ù.
PerlÀÇ ¸ðÅä, ¡°There Is More Than One Way To Do It¡± ¿¡ À̸¥ ¹Ù¿Í °°ÀÌ, ¹æ¹ýÀº ¿©·¯ °¡ÁöÀ̰í, ±× °ÍÀÌ ÇØ°áÃ¥À» Á¦½ÃÇÑ´Ù¸é ¸ðµÎ ¿ÇÀº °ÍÀÔ´Ï´Ù.
±×·¯´Ï,¡¦ ¾î¶² °ÍÀÌ ¸ÚÁø ÄÚµåÀϱî ÇÏ´Â °ÍÀ» °í¹ÎÇϱ⠺¸´Ù´Â ÀÚ¿¬½º·´°Ô Èê·¯³ª¿À´Â Äڵ带 ¼±ÅÃÇϽðí Áñ±â½Ã±æ ¹Ù¶ø´Ï´Ù.
Áï, ¾î¶² ¸ÚÁø Äڵ带 ¼±ÅÃÇÒ °ÍÀΰ¡ ÇÏ´Â ÀÇ¹Ì ¾ø´Â °í¹Î¿¡¼­ ¹þ¾î³ª Àڱ⠴ɷ°ú ȯ°æ¿¡ ¸Â´Â Äڵ带 ¼±ÅÃÇÏ´Â À¯¿¬ÇÔÀ» °®Ãß½Ã¸é ½Ç·ÂÀº ÀÚ¿¬½º·´°Ô Ä¿³ª°¥ °ÍÀ̶ó°í È®½ÅÇÕ´Ï´Ù.

ÀÌ·± Àú·± ±â¼úµéÀ» ÀÐÈ÷°í ³ª¸é, PerlÀÌ ¾ÆÁÖ °­·ÂÇÏ´Ù´Â °Í¿¡ ´ëÇØ¼­ µ¿ÀÇÇϰí ÀÚ²Ù ÀÚ²Ù ¸Å·Â¿¡ ºüÁ®µé°Ô µË´Ï´Ù.
µ¹¸æÀ̸¦ ¾²´ø ¿ø½ÃÀο¡°Ô µµ³¢¸¦ ÁÖ°í »ç¿ë¹ýÀ» ¾Ë·ÁÁÖ¸é, µ¹¸æÀ̸¦ Áý¾î ´øÁö°í µµ³¢¸¦ ¿­½ÉÈ÷ »ç¿ëÇÏ°Ô µÇ°ÚÁÒ. À¢¸¸ÇÑ Áü½Âµµ Çѹ濡 ºü»þ!!
³ª¹«µµ Çѹ濡 ºü»þ!!
È£µÎó·³ ´Ü´ÜÇÑ °Íµµ Çѹ濡 ±ò ¼ö ÀÖ°í,
±×·¯´Ù º¸´Ï »ç°úµµ ±ð¾Æ ¸Ô°í ¼ÕÅéµµ µµ³¢·Î ±ð½À´Ï´Ù. ¿À¹öÁÒ.
µµ³¢°¡ ÁÁÀº °ÍÀ̱ä ÇÏÁö¸¸ ¸¸´ÉÀÌ µÉ ¼ö´Â ¾øÁÒ.
PerlÀÌ ÁÁÀº ¾ð¾îÀ̱ä ÇÏÁö¸¸ °Å±â ºüÁ®¼± ¾È µÈ´Ù´Â À̾߱é´Ï´Ù..

¿ª¼³ÀûÀ̰Եµ Àú´Â PerlÀ» ¹è¿ì¸é¼­ ´õ¿í À¯¿¬ÇØÁø °Í °°½À´Ï´Ù.
ÀÌ·± ÄÚµå, Àú·± ÄÚµå, ±æ°í ªÀº ÄÚµå, ½¬¿î °Í°ú ¾î·Á¿î °Í, ±× ¾î°£¿¡ ÀÖ´Â °Íµé, ±×·¯ÇÑ °ÍµéÀ» ÁÙ ¼¼¿ìÁö ¾Ê°Ô µÇ°í¡¦
PerlÀÌ ¼³Ä¡µÇÁö ¾ÊÀº ÄÄÇ»Å͸¦ º¸°í ÂüÀ» ¼ö ¾ø±ä ÇÏÁö¸¸,...
PerlÀÌ À־ PerlÀ» »ç¿ëÇÏÁö ¾ÊÀ» ¼ö ÀÖ´Â Á¤µµ´Â µÈ µí ÇÕ´Ï´Ù. ^^
´Ù¸¥ ÄÄÇ»ÆÃ ¾ð¾î¿Íµµ ºÒÇÊ¿äÇÑ ºñ±³¸¦ ÇÒ ÇÊ¿ä´Â ¾ø´Ù°í º¾´Ï´Ù. ¿©±â Javaµµ Â÷°í, Àú±â C++µµ Â÷°í, Pythonµµ Â÷°í, Perlµµ Â÷°í Çʿ信 µû¶ó »Ì¾Æ¼­ ½î¸é µÇ´Ï±î¿ä. ^^
¸»ÇÏÀÚ¸é, PerlÀ̶ó´Â ¾ð¾îµµ µµ±¸ÀÏ »ÓÀÌÁö, Àý´ë ¸ñÇ¥´Â ¾Æ´Ñ ¸¸Å­ ¾ð¾îÀÇ ¼±Åðú ¾ð¾î¸¦ ´ëÇÏ´Â °Í¿¡ À־µµ À¯¿¬ÇÑ ÀÚ¼¼¸¦ À¯ÁöÇßÀ¸¸é ÇÑ´Ù´Â À̾߱âÀÔ´Ï´Ù.

ÀÌ·± ÀÚ¸®(¿öÅ©¼¥)°¡ ÀÖ´Ù´Â °Í¿¡ ³î¶ø°í °¨»ç µå¸³´Ï´Ù.
PerlÀ» ¸¸µå½Å Larry WallÇü´Ô(^^ 54³â»ýÀÌÁÒ ^^)¿¡°Ô ¸ÕÀú °¨»çµå¸®°í,
¾î·Á¿î ÄÁÆÛ·±½º¸¦ ±âȹÇϰí ÁغñÇϽŠ±èµµÇü´Ô°ú ¸¹Àº ºÐµé, ³ë°í¿¡ °¨»ç µå¸³´Ï´Ù.
ºÎÁ·ÇÑ »ç¶÷À» ÃÊ´ëÇØ ÁֽŠ°Íµµ °¨»ç µå¸³´Ï´Ù.
ƯÈ÷, ºÎÁ·ÇÑ À̾߱⿡ ³¡±îÁö ±Í ±â¿ï¿© ÁֽŠ¿©·¯ºÐ²²(ÀÌ ÆäÀÌÁö¿¡¼­ ±ÛÀ» ÀоîÁֽŠ¿©·¯ºÐ²²µµ) ±íÀÌ ±íÀÌ °¨»ç µå¸³´Ï´Ù.