1. PerlÀ̶õ ¹«¾ùÀΰ¡?
  2. ¾îµð¼­ PerlÀ» ´Ù¿î·Îµå ¹Þ³ª?
  3. PerlÀÇ ÀåÁ¡
  4. Perl ¿­ ¹è·Î Ȱ¿ëÇÏ´Â ¹æ¹ý
  5. ÆÀÀåÀ» À§ÇÑ Perl
  6. Perl/Tk - ±×·¡ÇÈ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º ŸŶ
  7. INSTALL ¸Å´º¾ó(¿µ¹®)

 

¡Ú PerlÀ̶õ ¹«¾ùÀΰ¡?

2002³â 3¿ù 11ÀÏ ÀüÁ¾ÇÊ
ÀÌ ¹®¼­´Â perl.html ¹®¼­¿¡¼­ ¹ßÃéÇÏ¿© ¹ø¿ªÇÑ ³»¿ëÀÔ´Ï´Ù

PerlÀº ÀÓÀÇÀÇ ÇüŸ¦ °®Ãá ÅØ½ºÆ® ÆÄÀÏÀ» Àаí, ÀÌ ÆÄÀÏ¿¡¼­ ÀǹÌÀÖ´Â Á¤º¸¸¦ ÃßÃâÇÏ¿©, ÀÌ Á¤º¸¸¦ ±Ù°ÅÇÑ ·¹Æ÷Æ®¸¦ Ãâ·ÂÇÏ´Â Á¦¹Ý ÀÛ¾÷¿¡ ÃÖÀûÈ­µÈ ¾ð¾îÀ̸ç, ½Ã½ºÅÛ °ü¸®¿¡µµ ¸Å¿ì ÀûÀýÇÑ ¾ð¾îÀÔ´Ï´Ù.
¶Ç, PerlÀº ¾Æ¸§´Ù¿î(»©¾î³­, ¿ì¼öÇÑ, ÃÖ¼ÒÇÑÀÇ) ¾ð¾îº¸´Ù´Â ½Ç¿ëÀûÀÎ(»ç¿ëÇϱ⠽±°í, È¿À²ÀûÀ̸ç, ¿ÏÀüÇÑ) ¾ð¾î¸¦ ÁöÇâÇÕ´Ï´Ù.

PerlÀº (ÀÌ ¾ð¾îÀÇ °³¹ßÀÚ°¡ ¸»Çϱ⸦) C, sed, awk ±×¸®°í sh¿Í °°Àº ¾ð¾î³ª ÇÁ·Î±×·¥µéÀÇ °¡Àå ÁÁÀº Á¡µéÀ» ÃëÇÕÇÑ ¾ð¾îÀ̹ǷÎ, ÀÌ ¾ð¾î, ÇÁ·Î±×·¥µé¿¡ Àͼ÷ÇÑ »ç¶÷µéÀ̶ó¸é perl »ç¿ë¿¡µµ ¿ª½Ã Å« ¾î·Á¿òÀ» ´À³¢Áö ¾ÊÀ» °ÍÀÔ´Ï´Ù. (ÄÄÇ»Å;ð¾î»çÇÐÀÚ¶ó¸é PerlÀÇ ¹®¹ýÀÌ ¾Æ¸¶ cshÀ̳ª Pascal ȤÀº BASIC-PLUS¿Íµµ ´à¾Ò´Ù°í »ý°¢ÇÒ °Í °°½À´Ï´Ù.) ¹®À屸Á¶´Â C ¾ð¾î¿Í »ó´çÈ÷ Èí»çÇÕ´Ï´Ù. ´ë°³ÀÇ Unix¿ë ÇÁ·Î±×·¥µé°ú´Â ´Þ¸®, PerlÀº ¿ì¸®°¡ »ç¿ëÇÒ µ¥ÀÌÅÍ Å©±â¿¡ ÇѰ踦 µÎÁö ¾Ê½À´Ï´Ù. ¸Þ¸ð¸®¸¸ ÃæºÐÇÏ´Ù¸é ÇÑ ÆÄÀÏÀÇ ³»¿ë Àüü¸¦ º¯¼öÇϳª¿¡ ²Ü²©ÇÒ ¼ö ÀÖÁÒ. Àç±Í(Recursion)´Â ¹«Á¦ÇÑ ¹Ýº¹µÉ ¼ö ÀÖ½À´Ï´Ù. ÇØ½¬(ȤÀº Á¶Çչ迭)¿¡¼­ »ç¿ëÇÏ´Â Å×À̺íÀº ¼º´ÉÀúÇϸ¦ ÀÏÀ¸Å°Áö ¾ÊÀ¸¸é¼­ ¹«ÇÑ´ë·Î Ä¿Áú ¼ö ÀÖ½À´Ï´Ù. PerlÀº ¼¶¼¼ÇÑ ÆÐÅÏÀÏÄ¡(pattern matching) ±â¼úÀ» ÀÌ¿ëÇÏ¿© ¸¹Àº ¾çÀÇ µ¥ÀÌÅ͸¦ ºü¸£°Ô °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. ºñ·Ï ÅØ½ºÆ® °Ë»ö¿¡ ÃÖÀûÈ­µÇ¾î ÀÖ±äÇÏÁö¸¸ ÀÌÁøµ¥ÀÌÅ͵µ ´Ù·ê ¼ö ÀÖÀ¸¸ç ÇØ½¬¿Í °°Àº ÇüÅÂÀÇ dbm ÆÄÀϵµ ¸¸µé¾î³¾ ¼ö ÀÖ½À´Ï´Ù. ¶Ç setuid¸¦ »ç¿ëÇÏ´Â ½ºÅ©¸³Æ®ÀÇ °æ¿ì C ÇÁ·Î±×·¥¿¡¼­ »ç¿ëÇÏ´Â °Íº¸´Ù ¾ÈÀüÇѵ¥, µ¥ÀÌÅÍ È帧À» ÃßÀûÇÏ´Â ¸ÞÄ¿´ÏÁòÀÌ ¸»µµ ¾ÊµÇ´Â ´ëºÎºÐÀÇ º¸¾È»óÀÇ ºóÆ´À» ¸·¾ÆÁֱ⠶§¹®ÀÌÁÒ.

¸¸ÀÏ ¿©·¯ºÐÀÌ sed³ª awk, sh (ȤÀº bash)¸¦ »ç¿ëÇÑ ÇÁ·Î±×·¥À» ¸¸µé¾î ¹®Á¦¸¦ Ç®¾î ³ª°¥ ¶§, ±× ¹®Á¦°¡ ÀÌ·± ÇÁ·Î±×·¥ÀÇ ´É·ÂÀ¸·Î´Â ±Øº¹ÇÏ±â ¾î·Æ´Ù°Å³ª, ȤÀº ÇÁ·Î±×·¥ÀÌ Á» ´õ »¡¶úÀ¸¸é Çϴµ¥, C¾ð¾î¸¦ »ç¿ëÇØ¼­ ¾î¸®¼®°Ôµµ ½Ã°£³¶ºñ¸¦ ÇÏ°í ½ÍÁö ¾Ê´Ù¸é, PerlÀÌ ÇØ°áÃ¥À» ÁÙ °ÍÀÔ´Ï´Ù. Âü°í·Î, ¿©·¯ºÐÀº sed³ª awk ½ºÅ©¸³Æ®¸¦ Perl ½ºÅ©¸³Æ®·Î ¹Ù²ãÁÖ´Â º¯È¯±âµéÀ» (ÀÎÅͳݿ¡¼­) ãÀ» ¼ö ÀÖ½À´Ï´Ù.

1993³âºÎÅÍ ½ÃÀÛÇØ¼­ Perl ¹öÁ¯ 5´Â °ÅÀÇ ¿ÏÀüÈ÷ »õ·Î ¸¸µé¾îÁ³°í, ±×·Î ÀÎÇÏ¿© ´ÙÀ½°ú °°Àº ÀÔ¸Àµµ´Â ³»¿ëµéÀÌ Ãß°¡µÇ¾ú½À´Ï´Ù.

  • ¼ö¸¹Àº ¸ðµâµéÀ» ÀÌ¿ëÇÑ ¸ðµâÈ­(modularity)¿Í Àç»ç¿ë¼º(reusability) : ÀÌ´Â ¶óÀ̺귯¸®¸¦ Á» ´õ È¿À²ÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÔ´Ï´Ù.
  • C ¾ð¾îÀÇ ÇѺκÐÀ¸·Î »ç¿ëÇϰųª, C ¾ð¾î¸¦ ÀÌ¿ëÇÏ¿© È®Àå °¡´É.(embeddable and extensible)
  • ´Ù¸¥ µ¥ÀÌÅÍ(DBM°°Àº)¸¦ º¯¼ö¿¡ ÅëÇÕÇÏ¿© º¯¼ö¸¦ Á¶ÀÛÇÏ´Â °ÍÀ¸·Î ¿ø·¡ÀÇ µ¥ÀÌÅ͸¦ Á¶ÀÛÇÒ ¼ö ÀÖ´Â ±â´É. (roll-your-own magic variables (including multiple simultaneous DBM implementations))
  • ¼­ºê·çƾÀ¸·Î ³»Àå ÇÔ¼ö Àç¼±¾ð(override)Çϱâ. ¼­ºê·çƾÀÇ µ¿ÀûÀÎ ¼±¾ð(autoload). ÇÁ·ÎÅäŸÀÌÇÎ.
  • ´Ü¼øÇÑ scalar, ¹è¿­, ÇØ½¬ÀÌ»óÀÇ º¹ÀâÇÑ µ¥ÀÌÅÍ ±¸Á¶¿Í À͸íÀÇ ÇÔ¼ö. (arbitrarily nested data structures and anonymous functions)
  • °´Ã¼ÁöÇâÀû ÇÁ·Î±×·¡¹Ö(object-oriented programming)
  • C ÄÚµå ¶Ç´Â Perl ¹ÙÀÌÆ®ÄÚµå·ÎÀÇ º¯È¯(compilability into C code or Perl bytecode)
  • ¾²·¹µå Áö¿ø(support for light-weight processes (threads))
  • ±¹Á¦È­, Áö¿ªÈ­, À¯´ÏÄÚµå(support for internationalization, localization, and Unicode)
  • º¯¼öÀÇ »çÀüÀû ¹üÀ§ÁöÁ¤(lexical scoping) - my ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÑ º¯¼öÀÇ Á¢±Ù¹üÀ§ Á¦ÇÑ.
  • Çâ»óµÈ Á¤±Ô½Ä(regular expression enhancements)
  • Çâ»óµÈ µð¹ö°Å¿Í ³»Àå ÆíÁý±â¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ¿Í »óÈ£ÀÛ¿ëÇϴ ȯ°æ (enhanced debugger and interactive Perl environment with integrated editor support)
  • POSIX 1003.1 ȣȯ ¶óÀ̺귯¸®(POSIX 1003.1 compliant library)
PerlÀÇ ¸ðÅä´Â ``»ê ²À´ë±â¿¡ À̸£´Â ±æÀÌ ¾îµð Çϳª»ÓÀÌ·ª!(There's more than one way to do it)''ÀÔ´Ï´Ù. ¸î°¡Áö°¡ µÉÁö´Â ¿©·¯ºÐ¿¡°Ô ´Þ·È½À´Ï´Ù.

¸¶Áö¸·À¸·Î, ÇÁ·Î±×·¡¸Ó°¡ °®Ãß¾î¾ß ÇÒ ¼¼ °¡Áö ¹Ì´öÀ» ¾Ë·Á µå¸®°Ú½À´Ï´Ù. ±× °ÍÀº °ÔÀ¸¸§(Laziness), ÂüÁö¸»±â(Impatience), ±³¸¸(Hubris)ÀÔ´Ï´Ù.

Perl ¸¸¼¼ !! Perl actually stands for Pathologically Eclectic Rubbish Lister, but don't tell anyone I said that.