ÀÌ ¹®¼´Â 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.
|