ÆÞ¿¡¼ °¡Àå ±âº»ÀûÀÎ º¯¼ö°¡ ½ºÄ®¶ó º¯¼öÀÌ´Ù. ½ºÄ®¶ó º¯¼ö´Â ¹®ÀÚ¿°ú ¼ýÀÚ µÑ´Ù¸¦ ÃëÇÒ ¼ö ÀÖÀ¸¸ç, ¹®ÀÚ¿°ú ¼ýÀÚ°¡ ¿ÏÀüÈ÷ »óÈ£ ±³È¯ÀûÀ̶ó´Â °ÍÀÌ µÎµå·¯Áø Ư¡ÀÌ´Ù. ¿¹¸¦µé¾î
$priority = 9; # Á¤¼ö
$real = 43.955; # ½Ç¼ö
$hex = 0xFF00; # 16Áø¼ö. hex($hex)·Î 10Áø¼ö·Î º¯È¯
$octal = 0177; # 8Áø¼ö. oct($octal)·Î 10Áø¼ö·Î º¯È¯
print "$priority, $real, $hex, $octal\n"; # Ãâ·ÂÀº ¸ðµÎ 10Áø·Î µÈ´Ù.
Àº ½ºÄ®¶ó º¯¼ö $priority¿¡ 9¸¦ ÇÒ´çÇÏÁö¸¸ Á¤È®È÷ µ¿ÀÏÇÑ º¯¼ö¿¡ ¹®ÀÚ¿ ¶ÇÇÑ ÇÒ´çÇÒ ¼ö ÀÖ´Ù:
$priority = 'high';
print "$priority\n";
ÆÞÀº ¶ÇÇÑ ¹®ÀÚ¿·Î¼ ¼ýÀÚ¸¦ Çã¿ëÇÑ´Ù:
$priority = '9';
$default = '0009';
print $priority + $default, "\n";
print $priority . $default, "\n";
À§ÀÇ ¹®ÀåÀº ¹®ÀÚ¿ ÀÌÁö¸¸ ´ë¼ö¿¬»ê°ú ´Ù¸¥ ¿¬»êµµ °¡´ÉÇÏ´Ù.
ÀϹÝÀûÀ¸·Î º¯¼ö¸íÀº ¼ýÀÚ, ¹®ÀÚ, ¹ØÁÙ·Î ±¸¼ºµÇÁö¸¸ ¼ýÀÚ·Î ½ÃÀÛÇؼ´Â ¾ÊµÈ´Ù. ¶ÇÇÑ º¯¼ö $_´Â µÚ¿¡¼ º¸¸é ¾Ë°ÚÁö¸¸ Ư¼öº¯¼öÀÌ´Ù. ¶ÇÇÑ ÆÞÀº ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÑ´Ù. µû¶ó¼ $a¿Í $A´Â ¼·Î´Ù¸¥ º¯¼öÀÌ´Ù.
¿¬»êÀÚ¿Í ÇÒ´ç
ÆÞÀº ¸ðµç Åë»óÀûÀÎ CÀÇ ´ë¼ö ¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù:
$a = 1 + 2; # 1°ú 2¸¦ ´õÇØ $a¿¡ ÀúÀå
$b = 3 - 4; # 3¿¡¼ 4¸¦ »©°í $a¿¡ ÀúÀå
$c = 5 * 6; # 5¿Í 6À» °öÇÔ
$d = 7 / 8; # 7À» 8·Î ³ª´®
$e = 9 ** 10; # 9ÀÇ 10½Â
$f = 5 % 2; # 5¸¦ 2·Î ³ª´« ³ª¸ÓÁö
$g = ++$a; # $a¸¦ Áõ°¡½ÃÅ°°í °á°ú¸¦ ¸®ÅÏ
$h = $a++; # $a¸¦ ¸®ÅϽÃÅ°°í $a¸¦ Áõ°¡
$i = --$a; # $a¸¦ °¨¼ÒÅ°±â°í °á°ú¸¦ ¸®ÅÏ
$j = $a--; # $a¸¦ ¸®ÅÏÇÏ°í $a¸¦ °¨¼Ò
print "$a, $b, $c, $d, $e, $f, $g, $h, $i, $j\n";
¹®ÀÚ¿ÀÇ °æ¿ì ÆÞÀº ´ÙÀ½°ú °°Àº ¿¬»êÀÚ¸¦ Áö¿øÇÑ´Ù:
print $b . $c, "\n"; # $b¿¡ $c¸¦ µ¡ºÙÀÓ
print $b x $c, "\n"; # $b¸¦ $c¹ø ¹Ýº¹
°ªÀ» ÇÒ´çÈ÷±âÀ§ÇØ ÆÞÀº ´ÙÀ½°ú °°Àº °ÍÀ» Áö¿øÇÑ´Ù:
$a = $b; # $a¿¡ $b¸¦ ÇÒ´ç
$a += $b; # $b¸¦ $a¿¡ ´õÇÏ°í °á°ú¸¦ $a¿¡ ÀúÀå
$a -= $b; # $b¸¦ $a¿¡¼ »©°í °á°ú¸¦ $a¿¡ ÀúÀå
$a .= $b; # $b¸¦ $a¿¡ µ¡ºÙÀÌ°í °á°ú¸¦ $a¿¡ ÀúÀå
ÁÖÀÇ: ÆÞÀÌ $a = $b·Î °ªÀ» ÇÒ´çÇÒ ¶§ $bÀÇ »çº»À» ¸¸µé°í ÀÌ °ÍÀ» $a¿¡ ÇÒ´çÇÑ´Ù. µû¶ó¼ $b´Â µû·Î º¯°æÇÒ ¶§±îÁö $a¿Í °°Àº °ªÀ» °®°ÔµÈ´Ù.
´Ù¸¥ ¿¬»êÀÚ´Â ¸í·ÉÇà¿¡¼ man perlop¶ó°í ÀÔ·ÂÇؼ ÂüÁ¶ÇÑ´Ù.
³¢¿ö³Ö±â
´ÙÀ½ ÄÚµå´Â »ç°ú¿Í ¹è¸¦ Ãâ·ÂÇϱâÀ§ÇØ ¹®ÀÚ¿ µ¡ºÙÀÓÀ» »ç¿ë ÇÑ´Ù:
$a = '»ç°ú';
$b = '¹è';
print $a.'¿Í '.$b;
¸¶Áö¸· print ¹®Àå¿¡¼ ´ÜÁö ÇϳªÀÇ ¹®ÀÚ¿¸¸ Æ÷ÇÔÇÏ´Â°Ô º¸´Ù ³ªÀº ¹æ¹ýÀÌÁö¸¸
print '$a ¿Í $b';
´Â ¾ÆÁÖ ¾µ¸ð ¾ø´Â $a ¿Í $b¸¦ Ãâ·ÂÇÑ´Ù. ÀÌ °æ¿ì ÀÛÀº µû¿ÈÇ¥ ´ë½Å¿¡ Å« µû¿ÈÇ¥¸¦ »ç¿ëÇÏ¸é µÈ´Ù:
print "$a ¿Í $b";
Å«µû¿ÈÇ¥´Â º¯¼ö Çؼ®À» Æ÷ÇÔÇؼ ÀÓÀÇÀÇ Äڵ忡´ëÇÑ º¯¼ö´ëÄ¡¸¦ ¼öÇàÇÑ´Ù. ÀÌ °ÍÀº ¿ø·¡ÀÇ ¹®À庸´Ù ÈξÀ ³ª¾Æº¸ÀδÙ. Å«µû¿ÈÇ¥¿¡´Â °³Ç๮ÀÚ, ÅÇ°ú °°Àº Ư¼ö¹®ÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ÄÚµå \n´Â °³Ç๮ÀÚÀ̸ç, \t´Â ÅÇÀÌ´Ù.
Àοë
ÆÞ¿¡¼´Â ¹®ÀÚ¿À» ÀοëÇÏ´Â ¿©·¯°¡Áö ¹æ¹ýÀÌ Á¸ÀçÇÑ´Ù.
+ '(ÀÛÀº µû¿ÈÇ¥)
°¡Àå °£´ÜÇÑ Àοë¹ý. ÀÛÀº µû¿ÈÇ¥ ³»¿¡ À§Ä¡ÇÑ ¹®ÀåÀº ¹®ÀÚÀûÀ¸·Î Çؼ®µÇ¸ç, ¾î¶°ÇÑ º¯¼ö ´ëÄ¡³ª È®Àåµµ ÃëÇØÁöÁö ¾Ê´Â´Ù.
¹®ÀÚ¿³»¿¡ ÀÛÀº µû¿ÈÇ¥¸¦ Æ÷ÇÔÇϱâ À§Çؼ´Â ¿ª ½½·¡½¬ ''·Î Escape½ÃÄÑ¾ß ÇÑ´Ù.
$instrument = 'ºÏ';
$littleInstrument = '¼Ò°í $instrument';
# $littleInstrumentÀÇ ¹®ÀÚ°ªÀº "¼Ò°í $instrument"¶ó´Â ¹®ÀÚ¿À»
# Ãâ·ÂÇÑ´Ù.
+ "(Å« µû¿ÈÇ¥)
Å« µû¿ÈÇ¥´Â µû¿ÈÇ¥ »çÀÌÀÇ º¯¼ö¸¦ "°ªÀ¸·Î ´ëÄ¡"½ÃŲ´Ù.
$instrument = "ºÏ";
$littleInstrument = "¼Ò°í $instrument";
# $littleInstrumentÀÇ °ªÀº "¼Ò°í ºÏ"ÀÌ´Ù.
¹®ÀÚ¿³»¿¡ Å« µû¿ÈÇ¥¸¦ Æ÷ÇÔÇϱâ À§Çؼ´Â ¿ª ½½·¡½¬ ''·Î Escape½ÃÄÑ¾ß ÇÑ´Ù.
+ `(¿ª µû¿ÈÇ¥)
¿ª µû¿ÈÇ¥´Â UNIX ½©¿¡¼¿Í ¸¶Âù°¡Áö·Î µ¿ÀÛÇÑ´Ù. ¿ª µû¿ÈÇ¥³»ÀÇ ¹®ÀåÀº ºÐ¸®µÈ ÇÁ·Î¼¼½º·Î ¼öÇàµÇ¸ç, ¸í·ÉÀÇ Ç¥ÁØ Ãâ·ÂÀÌ ¹®ÀÚ¿À» °ªÀ¸·Î ¸®ÅϵȴÙ.
¿ª µû¿ÈÇ¥´Â º¯¼ö ´ëÄ¡ ¶ÇÇÑ ¼öÇàÇϸç, ¹®ÀÚ¿¿¡ ¿ª µû¿ÈÇ¥¸¦ Æ÷ÇÔÇϱâÀ§ÇØ ¿ª ½½·¡½¬ ''·Î escape ½ÃÄÑ¾ß ÇÑ´Ù.
$memberList = "/usr/people/conductor/roster";
$memberCount = `wc -l $memberList`;
# $memberCount´Â roster³»ÀÇ È¸¿øÀÇ ¼ö°¡µÈ´Ù.
# °¢ÀÇ È¸¿øÀº ÇàÀ¸·Î ±¸ºÐµÈ °ÍÀ¸·Î °¡Á¤ÇÏ¿´´Ù.
¿¹
1: # sendmailÀÇ À§Ä¡
2: $sendmail = "/usr/lib/sendmail";
3:
4: # http°¡ ¼³Ä¡µÈ µð·ºÅ丮
5: $basedir = '/www';
6:
7: # ±â·ÏÆÄÀÏ
8: $logfile = "$basedir/etc/logs/$progname.log";
9:
10: # ¿À´Ã ³¯ÀÚ
11: $date = `date`;
+ q/ /
ÇÒ´çÇÏ·Á´Â ¹®ÀÚ¿¿¡ Àο빮ÀÚ(',",`)ÀÇ ÃâÇöºóµµ°¡ ³ô¾Æ ¹Ýº¹ÀûÀ¸·Î ¿ª½½·¡½¬(\)¸¦ »ç¿ëÇØ¾ß ÇÏ´Â °æ¿ì¿¡ ¾ÆÁÖ À¯¿ëÇÑ Àο뿬»êÀÚÀÌ´Ù.
$string = 'This isn't Bill's shirt, I'm sure.';
$qstring = q/This isn't Bill's shirt, I'm sure./;
print "$string\n $qstring\n":
ÀÌ °æ¿ì ½½·¡½¬(/) ´ë½Å¿¡ ¼öÁ÷¹Ù(|)³ª µÕ±Ù°ýÈ£(())¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
$qstring1 = q|This isn't Bill's shirt, I'm sure.|;
$qstring2 = q(This isn't Bill's shirt, I'm sure.);
print "$qstring1\n $qstring2\n":
½ºÄ®¶ó º¯¼ö °ü·ÃÇÔ¼ö
chop(STRINGVAR)
¹®ÀÚ¿ º¯¼öÀÇ ¸¶Áö¸· ¹®ÀÚ¸¦ Á¦°ÅÇÏ°í Áö¿öÁø ¹®ÀÚ¸¦ ¸®ÅÏÇÑ´Ù.
print "³ªÀÌ: ";
chop($age = <STDIN>);
print "\n³ªÀÌ´Â $age±º. ¾î¸®³×\n";
chomp(STRINGVAR)
¹®ÀÚ¿ÀÇ ³¡¿¡¼ ¶óÀÎ ³¡±îÁö¸¦ Á¦°ÅÇϸç, Áö¿öÁø ¹®ÀÚÀÇ °³¼ö¸¦ ¸®ÅÏÇÑ´Ù. ±Ùº»ÀûÀ¸·Î chop¿Í °°Àº ÀÏÀ» ÇÑ´Ù. ±×·¯³ª ÁٹٲÞÀº DOSÀÇ °æ¿ì 0x0D0AÀÌÁö¸¸ UnixÀÇ °æ¿ì¿¡´Â 0x0AÀÌ´Ù. µû¶ó¼ ÁÙ¹Ù²Þ ¹®ÀÚ¸¦ Á¦°ÅÇϱâÀ§ÇØ chop¸¦ »ç¿ëÇϸé Unix¿¡¼´Â Á¦µ¥·Î µ¿ÀÛÇÏÁö¸¸ DOS¿¡¼´Â Á¦´ë·Î µ¿ÀÛÇÏÁö ¾Ê´Â´Ù. ÀÌ chomp ÇÔ¼ö´Â OS ¶§¸¥ ÁÙ¹Ù²Þ ¹®ÀÚÀÇ °³¼ö¸¦ ÀνÄÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÁÙ¹Ù²Þ ¹®ÀÚ¸¦ Á¤È®È÷ Á¦°ÅÇÒ ¼ö ÀÖ´Ù.
ÁÖÀÇ
chomp´Â perl 5¿¡¼ Áö¿øÇÏ´Â ±â´ÉÀÌ´Ù. µû¶ó¼ perl 4¿¡¼´Â »ç¿ëÇÒ ¼ö ¾ø´Ù.
lc(STRING)
ÁÖ¾îÁø ¹®ÀÚ¿À» ¼Ò¹®ÀÚ·Î º¯È¯ÇÑ´Ù.
lcfirst(STRING)
ÁÖ¾îÁø ¹®ÀÚ¿ÀÇ Ã¹ ¹®ÀÚ¸¦ ¼Ò¹®ÀÚ·Î º¯È¯ÇÑ´Ù.
uc(STRING)
ÁÖ¾îÁø ¹®ÀÚ¿À» ´ë¹®ÀÚ·Î º¯È¯ÇÑ´Ù.
ucfirst(STRING)
ÁÖ¾îÁø ¹®ÀÚ¿ÀÇ Ã¹ ¹®ÀÚ¸¦ ´ë¹®ÀÚ·Î º¯È¯ÇÑ´Ù.
length(STRING)
ÁÖ¾îÁø ¹®ÀÚ¿ÀÇ ±æÀ̸¦ ¸®ÅÏÇÑ´Ù.
$name = 'Jae-Geun, Kim';
$sex = 'Male';
print lc($name) . "----" . uc($name) . "\n";
print lcfirst($sex). "----" . uc($sex) . "\n";
print "Name: " . length($name) . "\n";
hex(STRING)
16Áø¼ö ¹®ÀÚ¿À» 10Áø¼ö·Î º¯È¯ÇÑ´Ù.
oct(STRING)
8Áø¼ö ¹®ÀÚ¿À» 10Áø¼ö·Î º¯È¯ÇÑ´Ù.
¿¬½À - ¹æ¸í·Ï
ÀÌÁ¦ºÎÅÍ À¥»ó¿¡¼ °¡Àå ÈçÈ÷ º¼¼ö ÀÖ´Â CGI ÇÁ·Î±×·¥ÀÎ ¹æ¸í·ÏÀ» ÀÛ¼ºÇϵµ·Ï ÇÏÀÚ. ¹æ¸í·ÏÀº »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ¹Þ¾Æ µ¥ÀÌÅÍ ÆÄÀÏ¿¡ ±â·ÏÇÏ´Â °¡Àå °£´ÜÇÑ CGI ÇÁ·Î±×·¥ÀÌ´Ù. ÀÌ ¹æ¸í·Ï CGI´Â ±âº»ÀûÀ¸·Î ´ÙÀ½°ú °°Àº ¼¼°¡Áö ÆÄÀÏ·Î ±¸¼ºµÈ´Ù.
guest.html
guest.htmlÀº ¹æ¹®ÀÚÀÇ ÀÔ·ÂÀ» ¹Þ¾ÆµéÀ̱âÀ§ÇÑ Æû ¹®¼·Î¼ ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÈ´Ù.
À̸§, ÀüÀÚ¿ìÆí, ȨÆäÀÌÁö´Â <INPUT> ű×ÀÇ TYPEÀ» TEXT·Î ÇÑ °ÍÀÌ´Ù. ÀüÀÚ¿ìÆí°ú ȨÆäÀÌÁö´Â VALUE ¼Ó¼ºÀ» ÁÖ¾î ±âº»°ªÀ» Ãâ·ÂÇϵµ·Ï ÇßÀ¸¸ç ÀÇ°ßÀº <TEXTAREA> ű׸¦ »ç¿ëÇß´Ù. º¸³»±â¿Í Áö¿ì±â´Â <INPUT> ű×ÀÇ TYPE¸¦ SUBMIT°ú RESET·Î ¸¸µç °ÍÀÌ´Ù.
<FORM>ÀÇ ACTION ¼Ó¼ºÀº ¾ÕÀ¸·Î ÀÛ¼ºÇÒ guest.cgi·Î ÇØ¾ß ÇÑ´Ù.
ÀÌ Æû¹®¼´Â »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ¹Þ¾ÆµéÀÌ´Â ¹®¼À̹ǷΠÆÄÀÏÀÇ ±ÇÇÑÀº 644À̾î¾ß ÇÑ´Ù.
% chmod 644 guestform.html
guestbook.html
¹æ¹®ÀÚ°¡ ÀÔ·ÂÇÑ ³»¿ëÀ» ÀúÀåÇÏ´Â ¹æ¸í·Ï µ¥ÀÌŸ ÆÄÀÏÀÌ´Ù. ÀÌ ÆÄÀÏÀº ´ÙÀ½°ú °°Àº ÇüÅ·ΠÀÛ¼ºÇÑ´Ù.
1: <html>
2: <head>
3: <title>¹æ¸í·Ï</title>
4: <meta http-equiv="pragma" content="no-cache">
5: <meta http-equiv="content-type" content="text/html;charset=EUC-KR">
6: </head>
7: <body>
8: <h1>¹æ¸í·Ï</h1>
»ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ µ¥ÀÌÅÍ´Â ¹æ¸í·Ï ÆÄÀÏÀÇ µÞºÎºÐ¿¡ Ãß°¡µÇ¹Ç·Î HTMLÀÇ Á¾·áű×ÀÎ </body></html>À» ¾²Áö ¾Èµµ·Ï ÇÑ´Ù.
ÀϹÝÀûÀ¸·Î À¥¼¹ö´Â nobody ±ÇÇÑÀ¸·Î ±âµ¿µÇ¸ç, À¥¼¹ö°¡ ¸¸µç ÀÚ½Ä ÇÁ·Î¼¼¼ÀÎ CGIµµ nobody ±ÇÇÑÀ» °®°ÔµÈ´Ù. ÀÌ nobody ±ÇÇÑÀ» °®´Â CGI°¡ ÆÄÀÏ¿¡ µ¥ÀÌÅ͸¦ ¾²±âÀ§Çؼ ÆÄÀÏÀÇ ±ÇÇÑÀº ¹Ýµå½Ã 666À̾î¾ß ÇÑ´Ù. µû¶ó¼ ÀÌ ÆÄÀÏÀ» ÀÛ¼ºÇÑ ÈÄ Unix ¸í·ÉÇà¿¡¼ ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÑ´Ù.
% chmod 666 guestbook.html
guest.cgi
guest.htmlÀ¸·ÎºÎÅÍ ÀÔ·ÂÀ» ¹Þ¾Æ guestbook.html¿¡ ÀÔ·ÂÀ» ÀúÀåÇÏ´Â CGIÀÌ´Ù. CGI ÇÁ·Î±×·¥Àº ½ÇÇà ÆÄÀÏ(À¥°ú Unix ¸í·ÉÇà¿¡¼)À̹ǷΠÆÄÀÏÀÇ ±ÇÇÑÀº 755¸¦ ÀÌ¾ß¾ß ÇÑ´Ù. µû¶ó¼ ÀÌ ÆÄÀÏÀ» ÀÛ¼ºÇÑ ÈÄ, Unix ¸í·ÉÇà¿¡¼ ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÑ´Ù.
% chmod 755 guestdata.html
guest.cgi ÀÛ¼º
- guest.htmlÀº À¥¿¡¼´Â URLÀ» ÀÌ¿ëÇؼ ÂüÁ¶Çϸç, CGI°¡ ÀÐ°í ¾µ¶§¿¡´Â Unix ½Ã½ºÅÛ °æ·Î¸¦ »ç¿ëÇÑ´Ù. µÎ °³ÀÇ ½ºÄ®¶ó º¯¼ö, $guestreal, $guesturl¿¡ guestbook.html ÆÄÀÏÀÇ ½Ã½ºÅÛ °æ·Î¿Í URLÀ» ÇÒ´çÇÑ´Ù.
- <FORM> ű×ÀÇ ACTIONÀº guest.cgi¸¦ ÂüÁ¶ÇϹǷΠ$cgiurlÀ̶ó´Â º¯¼ö¿¡´Â guest.cgiÀÇ URLÀ» ÇÒ´çÇÑ´Ù.
- »ç¿ëÀÚ°¡ Æû ¹®¼ÀÇ º¸³»±â ¹öÆ°À» Ŭ¸¯Çϸé ȸ鿡 "¹æ¸í·ÏÀ» ÀÛ¼ºÇØ Áּż °¨»çÇÕ´Ï´Ù"¶ó´Â ¸Þ½ÃÁö°¡ Ãâ·ÂµÇµµ·Ï guest.cgi¸¦ ÀÛ¼ºÇÑ´Ù.
ÀÛ¼ºÇÑ guest.cgi¸¦ Unix ¸í·ÉÇà¿¡¼ ¼öÇàÇÏ¸é ´ÙÀ½°ú °°Àº Çü½ÄÀÇ Ãâ·ÂÀ» ¸¸µé °ÍÀÌ´Ù.
1: % guest.cgi
2: content-type: text/html
3: <html>
4: <head>
5: <title>¹æ¸í·Ï</title>
6: </head>
7: <body>
8: <p>
9: ¹æ¸í·ÏÀ» ÀÛ¼ºÇØ Áּż °¨»çÇÕ´Ï´Ù.
10: </body>
11: </html>