/±Û¾´ÀÌ: Guido Socher ±Û¾´ÀÌ ¼Ò°³: Guido´Â ¿À·§µ¿¾È ¸®´ª½º ÆÒÀ̾ú´Ù. ÃÖ±Ù ±×´Â LinuxFocusÀÇ ÆíÁýÀÚ·Î È°µ¿ÇÏ°í ÀÖ´Ù. ¿äÁò ±×´Â ÁýÀ» »õ·Ó°Ô ´ÜÀåÇÏ°í Á¤¿ø¿¡ »ø·¯µå¿Í ´Ù¸¥ °ÍµéÀ» ½É¾î Å°¿ì´Âµ¥ ¹«Ã´ ¹Ù»Ú´Ù. Â÷·Ê: |
Abstract:
ÀÌ ±ÛÀº Perl¿¡ °üÇÑ ¿¬Àç±â»çÀÇ Ã¹¹ø° ±ÛÀÔ´Ï´Ù. ÀÌ ±ÛÀ» Àбâ À§ÇØ º°µµÀÇ °øºÎ¸¦ ÇØ¾ß ÇÑ´ÙµçÁö ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. C³ª ÆĽºÄ®°ú °°Àº ÀýÂ÷Çü ÇÁ·Î±×·¥ ¾ð¾î¿¡ ´ëÇÑ ¾à°£ÀÇ Áö½ÄÀ» °¡Áö°í ÀÖ´Ù¸é PerlÀ» Á» ´õ ½±°Ô ÀÍÈú ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
PerlÀº Larry Wall¿¡ ÀÇÇØ °³¹ßµÈ ½ºÅ©¸³Æ®¾ð¾îÀÌ´Ù. Áï ¼Ò½ºÄÚµå·ÎºÎÅÍ ¹Ù·Î ½ÇÇàµÈ´Ù.perlÀº º¸Åë /usr/local/perl¿¡ ¼³Ä¡µÇ¾î ÀÖ´Ù. perlÀº ¾î¶² Á¡¿¡¼ º¸¸é °íÀüÀÌ µÈ À¯´Ð½ºÇÁ·Î±×·¥ÀÎ awk, sed¿Í ºñ½ÁÇØ º¸ÀÌÁö¸¸ Â÷ÀÌÁ¡ÀÌ ºÐ¸íÀÖ´Ù. ¿À´Ã³¯ À¯ÇàÀÌ µÈ °´Ã¼ÁöÇâÇÁ·Î±×·¡¹ÖÀ» ÇѴٰųª ¶Ç´Â ±×·¡ÇÈ»ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ ¼³°èÇÒ ¶§¿¡µµ perlÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. PerlÀº ¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇÏ¸é ±× ±â´ÉÀ» ½±°Ô È®ÀåÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ¶óÀ̺귯¸®µéÀº CPAN¿¡ ¸ðµÎ Á¤¸®µÇ¾î ÀÖ´Ù. ÀÌ ±Û¿¡¼´Â ¿¬ÀçÀÇ Ã³À½À̹ǷΠ±×·¸°Ô °í±ÞÁÖÁ¦±îÁö´Â ´Ù·çÁö ¾ÊÀ» °ÍÀÌ´Ù. ¸ÕÀú ¸î°¡Áö ±âº»ÀûÀÎ »çÇ×À» »ìÆ캸°í Á¡Â÷ ¹ßÀüµÈ °í±ÞÁÖÁ¦µéÀ» ´Ù·ç±â·Î ÇÏÀÚ.
PerlÀº ¸Å¿ì À¯¿ëÇÑ ½ºÅ©¸³Æ® ¾ð¾îÀÌ´Ù. ¾à°£ÀÇ ÇÁ·Î±×·¡¹Ö °¨°¢À» °¡Áö°í ÀÖÀ¸¸é ½±°Ô ÀÍÈú ¼ö ÀÖ´Â º¸ÆíÀû µµ±¸ÀÌ´Ù.
¿©±â ÇÁ·Î±×·¥ ¼Ò½º(my1stprg)¸¦ ´·¯¼ ¿©·¯ºÐÀÇ
ÄÄÇ»ÅÍ¿¡ ÀúÀåÇϱ⠹ٶõ´Ù. ±×¸®°í ±ÇÇÑÀ» º¯°æÇØ ÁÖ±â À§ÇÏ¿©
chmod 755 my1stprg
¸í·ÉÀ» ½ÇÇàÇÑ´Ù.
±×¸®°í ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇØ º¸±â ¹Ù¶õ´Ù.
#!/usr/bin/perl -w
print "What is your name?\n"; $name=<STDIN>; #remove the new-line character: chomp($name); $len=length($name); print "\nHello $name! Your name is $len characters long\n"; |
Äڵ带 »ìÆ캸ÀÚ. ù¹ø° ÁÙÀº ¸í·É¾î°¡ ¾Æ´Ï´Ù.
"#!"·Î ½ÃÀÛÇÏ´Â ÁÙµéÀº º¸Åë À¯´Ð½º ½ºÅ©¸³Æ®ÀÇ Ã¹ÁÙ¿¡ »ç¿ëµÇ¸ç
¿î¿µÃ¼Á¦¿¡°Ô ÀÌ ÅؽºÆ®ÆÄÀÏÀ» ¾î¶»°Ô ½ÇÇàÇØ¾ß ÇÑ´Ù´Â Á¤º¸¸¦ ¾Ë·ÁÁØ´Ù.
ù°ÁÙÀÌ ¾Æ´Ñ °÷¿¡¼ #À¸·Î ½ÃÀÛÇÏ´Â ÁÙÀÌ ÀÖÀ¸¸é ±×°ÍÀº ÁÖ¼®¹®ÀÌ´Ù.(4¹ø° ÁÙÀ» º¸¸é ¾Ë ¼ö ÀÖ´Ù.)
¸ðµç ¹®ÀåÀº ¼¼¹ÌÄÝ·ÐÀ¸·Î ³¡³ª¾ß ÇÑ´Ù. º¯¼ö¸íÀº ´Þ·¯($)Ç¥½Ã·Î ½ÃÀÛÇÑ´Ù.
PerlÀÇ º¯¼ö´Â ¹®ÀÚ³ª Á¤¼ö, ºÎµ¿¼Ò¼öÁ¡À» ¸ðµÎ ÃëÇÒ ¼ö ÀÖ´Ù.
µ¥ÀÌÅÍÇüÀº º¯¼ö¿¡ »ç¿ëµÈ ³»¿ë¿¡ µû¶ó ÀÚµ¿À¸·Î ÀûÀýÇÑ ÇüÀ¸·Î ¹Ù²ï´Ù.
$·Î ½ÃÀÛÇÏ´Â º¯¼ö¸¦ ½ºÄ®¶óÇü º¯¼ö(scalar variable)À̶ó°í ÇÑ´Ù.
¸¸¾à $´ë½Å @·Î ½ÃÀÛÇÑ´Ù¸é ±×°ÍÀº ¹è¿À̸ç %·Î ½ÃÀÛÇϸé Çؽ¬Å×À̺íÀÌ´Ù.
ÀÌ·¯ÇÑ º¯¼öÇü¿¡ ´ëÇؼ´Â ´ÙÀ½È¸¿¡ ÀÚ¼¼È÷ »ìÆ캸µµ·Ï ÇÏ°Ú´Ù.
µÎ¹ø° ÁÙ¿¡ »ç¿ëµÈ printÇÔ¼ö´Â Ç¥ÁØÃâ·ÂÀ¸·Î ¹®ÀÚ¿À» Ãâ·ÂÇÏ´Â ÇÔ¼öÀÌ´Ù.
ÀÌ ÇÔ¼ö´Â ½©½ºÅ©¸³Æ®¿¡¼ echo¸í·É°ú ºñ½ÁÇÏ´Ù.
¸¸¾à Å«µû¿ÈÇ¥¾È¿¡ º¯¼ö¸íÀÌ »ç¿ëµÇ¾úÀ¸¸é º¯¼öÀÇ ÇöÀç°ªÀ¸·Î ¹Ù²ï´Ù.
ÀÛÀºµû¿ÈÇ¥¾ÈÀÇ º¯¼ö´Â ±× °ªÀ¸·Î ¹Ù²îÁö ¾Ê´Â´Ù.´Þ·¯Ç¥½Ã³ª µû¿ÈÇ¥¾È¿¡ µû¿ÈÇ¥¸¦ Ç¥½ÃÇÏ°íÀÚ ÇÒ °æ¿ì¿¡´Â ¿ª½½·¡½¬¸¦ ÀÌ¿ëÇÑ´Ù.
¿¹¸¦ »ìÆ캸ÀÚ:
#!/usr/bin/perl -w
$name="joe"; print "1 $name\n"; print '2 ', $name , "\n"; print '3 ', '$name',"\n"; print "4 \"$name\"\n"; print "5 \$name\n"; print "6 \"\$name\"\n"; |
°á°ú´Â ÀÌ·¸°Ô µÉ °ÍÀÌ´Ù.:
1 joe
2 joe 3 $name 4 "joe" 5 $name 6 "$name" |
ù¹ø° ¿¹Á¦ÇÁ·Î±×·¥À» ´Ù½Ã »ìÆ캸ÀÚ. $name=<STDIN>;ÁÙ¿¡¼ ÇÁ·Î±×·¥Àº »ç¿ëÀÚ°¡ ¿£ÅÍÅ°¸¦ Ä¥¶§±îÁö Å°º¸µå ÀÔ·ÂÀ»±â´Ù¸± °ÍÀÌ´Ù. ±× ´ÙÀ½ÁÙ¿¡ º¯¼ö $name¿¡´Â NL(newline)¹®ÀÚ±îÁö Æ÷ÇÔÇÑ »ç¿ëÀÚ ÀԷ°ªÀ» °¡Áö°í ÀÖ´Ù. chomp($name);´Â $nameÀÇ ÀÌ NL¹®ÀÚ¸¦ Á¦°ÅÇØÁØ´Ù. ¸¶Áö¸·À¸·Î lengthÇÔ¼ö´Â $nameÀÇ ±ÛÀÚ¼ö¸¦ ¾Ë·ÁÁØ´Ù.
ÀÌ ÇÁ·Î±×·¥¿¡´Â ¹ö±×°¡ ÀÖ´Ù. ¿©·¯ºÐÀÇ À̸§ ´ÙÀ½¿¡ ÅÇÀ̳ª °ø¹éÀ» ÀÔ·ÂÇØ º¸±â ¹ÙÇÑ´Ù.
Àß ÀÛµ¿Çϴ°¡? ÀÌ ¹ö±×¸¦ ¾î¶»°Ô ÀâÀ» ¼ö ÀÖÀ»±î?
¸ÕÀú À̸§¿¡¼ °ø¹éÀ» Á¦°ÅÇϱâ À§ÇÏ¿© ã±âÇÔ¼ö¿Í ¹Ù²Ù±âÇÔ¼ö°¡ ÇÊ¿äÇÏ´Ù.
PerlÀº ¹®ÀÚ¿À» ó¸®ÇÏ´Â ±â´ÉÀÌ ¸Å¿ì ¶Ù¾î³ª¸ç ÀÌ·¯ÇÑ ±â´ÉÀ» Á¤È®ÇÏ°Ô Á¦°øÇØ ÁØ´Ù.
[ \t]´Â °ø¹éÀ̳ª ÅÇÀ» ³ªÅ¸³»´Â Á¤±ÔÇ¥Çö½ÄÀÌ´Ù.
perl¿¡¼´Â \s·Î °£´ÜÇÏ°Ô ³ªÅ¸³¾ ¼öµµ ÀÖ´Ù.
(°ü·Ã±â»ç : Á¤±ÔÇ¥Çö½Ä).
perlÀÇ ´ëü¸í·ÉÀº Á¤±ÔÇ¥Çö½ÄÀ» ÃëÇϹǷΠ³ª¸§´ë·ÎÀÇ ¹®¹ýÀ» °¡Áö°í ÀÖ´Ù.: $name=~ s/regexp/replacement/g;
¸¸¾à ¿©·¯ºÐÀÌ ´ëü¹®ÀåÀ» ±×´ë·Î ºñ¿öµÐ´Ù¸é Á¤±ÔÇ¥Çö½ÄÀº ¾Æ¹«°Íµµ ¾ø´Â °÷¸¶´Ù ÀÏÄ¡µÇ´Â °÷À»
ã¾Ò´Ù´Â ½ÅÈ£¸¦ º¸³»ÁÙ °ÍÀÌ´Ù.ÀÌÁ¦ ¼öÁ¤ÇÑ ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°´Ù.:
#!/usr/bin/perl -w
print "What is your name?\n"; $name=<STDIN>; #NL¹®ÀÚ¸¦ Á¦°ÅÇÑ´Ù.: chomp($name); print "\nHello $name!"; #¹®ÀÚ¿¿¡¼ °ø¹éÀ» Á¦°ÅÇÑ´Ù.: $name=~s/\s//g; $len=length($name); print " Your name is $len characters long\n"; |
ÀÌ ÇÁ·Î±×·¥Àº »ç½Ç ·çÇÁ³ª if°°Àº Á¶°Ç¹®µî Á¦¾î¿¡ °üÇÑ ¹®ÀåÀÌ Çϳªµµ »ç¿ëµÇ¾î ÀÖÁö ¾Ê±â¶§¹®¿¡ º°·Î À¯¿ëÇÑ ÇÁ·Î±×·¥Àº ¾Æ´Ï´Ù. ¿¬À縦 ÅëÇÏ¿© ÀÌ ÇÁ·Î±×·¥À» Á¶±Ý¾¿ º¹ÀâÇÑ ÇÁ·Î±×·¥À¸·Î È®Àå½ÃÄѳª°¡µµ·Ï ÇÏ°Ú´Ù.
¹°·Ð "man perl"°ú "man perlfunc"À» ÅëÇؼ ¾î¶² ÇÔ¼ö¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´ÂÁö ã¾Æº¼ ¼ö ÀÖ´Ù. ¿©±â¿¡ Á» ´õ ÀÚ¼¼È÷ °øºÎÇÏ°í ½Í´Ù¸é O'Reilly»ç¿¡¼ ³ª¿Â "Learing Perl"µîÀ» Àо±â ¹Ù¶õ´Ù.
À¥ÆäÀÌÁö´Â ¸®´ª½ºÆ÷Ä¿½º ÆíÁýÆÀ¿¡¼ °ü¸®ÇÕ´Ï´Ù.
© Guido Socher LinuxFocus 1999 |