ÆÞ¿¡´Â Å©°Ô ¼¼ °¡Áö º¯¼ö°¡ ÀÖ½À´Ï´Ù. ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾îº¸´Ù º¯¼öÇü¿¡ ÀÖ¾î¼ ¾ö°ÝÇÏÁö ¾Ê±â ¶§¹®¿¡ ÀÌÇØÇϱⰡ ÈξÀ ½±°í ½ÇÁ¦ ÄÚµùµµ ¾ÆÁÖ Æí¸®ÇÏ°í °£´ÜÇÕ´Ï´Ù.
ÇÁ·Î±×·¥ ¾ð¾î¸¦ ¹è¿ì´Â °ÍÀº ¿Ü±¹¾î¸¦ ¹è¿ì´Â °Í°ú ¸¹Àº À¯»çÁ¡ÀÌ ÀÖ½À´Ï´Ù. ¾ð¾î¸¶´ÙÀÇ ¹®È°¡ ÀÖ½À´Ï´Ù. ¾ð¾î¸¦ »ç¿ëÇÏ´Â Ä¿¹Â´ÏƼ°¡ Á¸ÀçÇÕ´Ï´Ù. ±×¹Û¿¡ ½ÇÁ¦ ¾ð¾î ÀÚü·Î¼µµ ¸¹Àº °øÅëÁ¡ÀÌ ÀÖ½À´Ï´Ù.
³»ð(?)ÇÏ°Ô ¾²¿©Áø °ÍÀ¸·Î ¾Ç¸í ³ôÀº ÆÞÀÇ '±³°ú¼', "Programming Perl"(Àϸí Camel Book; ÆÞÀ» ¸¸µç Larry Wallä«°¡ Á÷Á¢ ¾´ Ã¥ÀÔ´Ï´Ù)À» º¸¸é ¿ì¸®°¡ »ç¿ëÇÏ´Â ÀÏ»ó ¾ð¾î¿Í ÇÁ·Î±×·¡¹Ö ¾ð¾î »çÀÌÀÇ À¯»çÁ¡À» µé¾î ¼³¸íÇÏ´Â ¹æ½ÄÀÌ °ðÀß µîÀåÇÕ´Ï´Ù. ·¡¸® ¿ùä«´Â Á¤¸» ¾ð¾îÇÐÀÚ(linguist)¿´±â ¶§¹®¿¡ ±×·± °æÇâÀÌ ´õ µÎµå·¯Áö´Â °Í °°½À´Ï´Ù. ¿¹¸¦ µé¾î ÀÌ·± ¾ê±â°¡ ³ª¿É´Ï´Ù.
º¯¼ö´Â '¸í»ç'¿¡ ÇØ´çÇϰí, ÇÔ¼ö´Â 'µ¿»ç'¿¡ ÇØ´çµÇ´Ï´Ù. ÆÞ¿¡¼ º¯¼ö À̸§À» ¸¸µé ¶§, ¾Õ¿¡ Ư¼ö±âÈ£ ($, @, %)¸¦ ºÙ¿©¼ ¸¸µå´Âµ¥ À̰ÍÀº ÀÚ¿¬¾îÀÇ '°ü»ç'¿¡ ÇØ´çµË´Ï´Ù.
Áß¿äÇÑ °ÍÀº ¸í»ç´Ï µ¿»ç´Ï ÇÏ´Â °Ô ¾Æ´Ï°í, ÆÞÀº µ¶Æ¯ÇϰԵµ º¯¼ö À̸§ ¾Õ¿¡ Ư¼ö ¹®ÀÚ¸¦ ºÙ¿©¼ º¯¼öÀÇ ÇüÀ» °áÁ¤ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î´Â °ÅÀÇ ´Ù º¯¼ö À̸§ ¾Õ¿¡ Ưº°ÇÑ ±âÈ£°¡ ºÙÁö ¾Ê½À´Ï´Ù. ¾ËÆÄºªÀ̳ª ¼ýÀÚ¸¦ ÀÏÁ¤ÇÑ ±ÔÄ¢¿¡ ¸Â°Ô ¹è¿ÇÏ¸é º¯¼ö À̸§À¸·Î »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç º¯¼öÀÇ Çü(type; Á¤¼öÇü, ½Ç¼öÇü, ºÒ¸®¾ðÇü,.)Àº ¼±¾ð(declaration)À̶ó´Â °úÁ¤À» °ÅÃļ °áÁ¤ÇÏ´Â °Ô º¸ÅëÀÔ´Ï´Ù.
ÆÞÀº µ¶Æ¯ÇϰԵµ º¯¼ö À̸§ ÀÚü¿¡ Ư¼ö±âÈ£¸¦ ºÙ¿©¼ ¼±¾ð ¾øÀÌ º¯¼ö À̸§ÀÌ °ð¹Ù·Î ÇüÀ» ³ªÅ¸³»°Ô µÇ¾î ÀÖ½À´Ï´Ù. ¿µ¾îÀÇ °ü»çó·³ ±× º¯¼öÀÇ Æ¯Â¡À» À̸§¸¸ º¸°íµµ ¾Ë ¼ö ÀÖ½À´Ï´Ù. a boy, a girl µîÀÌ "a" ¶ó´Â °ü»ç¸¦ ÅëÇØ¼ ´Ü¼ö¸í»ç·Î ÆÄ¾ÇµÇ´Â °Íó·³, ÆÞÀÇ º¯¼ö ¿ª½Ã º¯¼ö ¾Õ¿¡ ºÙÀº ±âÈ£¸¦ ÅëÇØ ÇüÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ÆÞÀÇ º¯¼ö Áß '´Ü¼ö'¿¡ ÇØ´çÇÏ´Â, Áï ÇÑ °³Â¥¸® ¹«¾ùÀ» ´ã´Â º¯¼ö¸¦ ½ºÄÉÀ϶ó(scalar)¶ó°í ÇÕ´Ï´Ù. ½ºÄÉÀÏ¶ó º¯¼ö´Â º¯¼ö À̸§ ¾Õ¿¡ $(´Þ·¯Ç¥½Ã)¸¦ ºÙ¿©¼ ¸¸µì´Ï´Ù. $°¡ scalar ÀÇ "s"¿Í À¯»çÇÏ´Ù´Â °ÍÀ¸·Î ±â¾ïÇÏ¸é µË´Ï´Ù. ¿¹¸¦ µé¾î ´ÙÀ½Àº ¿©·¯ ½ºÄÉÀÏ¶ó º¯¼ö¿¡ ¼ýÀÚ³ª ¹®ÀÚ, ¹®ÀÚ¿À» ÇÒ´çÇÑ °ÍÀÔ´Ï´Ù.
$a = 13;
$b = 'a';
$c = '25';
$d = "xyz";
print $a,$b,$c,$d;
ÆÞÀÇ º¯¼ö´Â ±× º¯¼ö À̸§¿¡¼ ÀÌ¹Ì ÇüÀÌ µå·¯³ª±â ¶§¹®¿¡ µû·Î ¼±¾ðÇÏÁö ¾Ê½À´Ï´Ù. ´Þ·¯ Ç¥½Ã¸¸ ºÙ¾îÀÖÀ¸¸é ¼ýÀÚ³ª ¹®ÀÚ ÇÑ °³¸¦ ´ã´Â ½ºÄÉÀÏ¶ó º¯¼ö°¡ µË´Ï´Ù. ¿©±â¿¡ ´ëÇØ¼´Â C ³ª ÀÚ¹Ù, ÆÄ½ºÄ®À» ¾²´ø »ç¶÷µéÀº ¾ð¾î°¡ ³Ê¹« ±ÔÄ¢¾øÀÌ ¾îÁö·´´Ù°í ºñÆÇÇϱ⵵ ÇÏÁö¸¸ ÇÑÆí¿¡¼´Â ÀÌ·± Á¡ÀÌ ÆÞÀÇ ¸Å·ÂÀ̶ó°í ¾ê±âÇÕ´Ï´Ù. °¢ÀÚÀÇ È£ºÒÈ£´Â ÀÖ°ÚÁö¸¸ ÆÞÀº »ó´ëÀûÀ¸·Î °£ÆíÇϰí ÀÚÀ¯·Ó½À´Ï´Ù.
¶Ç Çϳª, ½ºÄÉÀÏ¶ó º¯¼ö¿¡´Â ¼ýÀÚ³ª ¹®ÀÚ, ¹®ÀÚ¿ÀÌ ´Ù ´ã±æ ¼ö ÀÖ´Ù´Â Á¡µµ ÁÖÀÇÇϼ¼¿ä. ÆÞÀÇ º¯¼ö´Â Çü(type)¿¡ ¾ö°ÝÇÏÁö ¾Ê½À´Ï´Ù. ´Ù¸¥ ¾ð¾î, À̸¦Å׸é C³ª ÀÚ¹Ù, ¶Ç´Â ÆÄ½ºÄ® µîÀº º¯¼öÇüÀÌ ÆÞ¿¡ ºñÇØ ÈξÀ ´õ ¾ö°ÝÇÕ´Ï´Ù. "strongly typed language"ÀÔ´Ï´Ù. ¾î´À ÂÊÀÌ ´õ ÁÁÀº°¡¿¡ ´ëÇØ¼ ¿©·¯ ÀǰßÀÌ ÀÖ½À´Ï´Ù¸¸ ÆÞÀº Á¶±Ý ´õ ºÐ¹æÇÑ ÂÊÀ̶ó°í »ý°¢ÇÏ¸é µË´Ï´Ù.
½ºÄÉÀÏ¶ó º¯¼ö¿¡ ´ãÀ» ¼ö ÀÖ´Â °Í¿¡´Â ¼ýÀÚ, ¹®ÀÚ ¿Ü¿¡µµ reference(C¾ð¾îÀÇ Æ÷ÀÎÅÍ¿Í ºñ½ÁÇÑ °ÍÀ¸·Î »ý°¢ÇÏ½Ã¸é µË´Ï´Ù)¿Í °´Ã¼°¡ ÀÖ½À´Ï´Ù. ·¹ÆÛ·±½º³ª °´Ã¼¿¡ °üÇÑ ³»¿ëÀº ±î´Ù·Î¿î ÆíÀ̱⠶§¹®¿¡ ¿©±â¼´Â ¼³¸íÇÏÁö ¾Ê½À´Ï´Ù.
´Ü¼ö´Â ½ºÄÉÀ϶ó¶ó°í Çß½À´Ï´Ù. ±×·¸´Ù¸é º¹¼ö´Â ¹«¾ùÀϱî¿ä?
ÆÞ¿¡¼ÀÇ º¹¼ö´Â ¹è¿(Array)À̶ó°í ÇÕ´Ï´Ù. arrayÀÇ ¾Õ±ÛÀÚó·³ @¸¦ º¯¼ö À̸§ ¾Õ¿¡ ºÙ¿©¼ »ç¿ëÇÕ´Ï´Ù. ¹Ù²ã ¾ê±âÇÏ¸é ½ºÄÉÀÏ¶ó¸¦ ¸ð¾Æ ³õÀº °ÍÀÌ ¹è¿ÀÔ´Ï´Ù.
@a = (3, 2);
@b = 5;
@c = ("abc", 34, '21');
print @a; print @c;
ÆÞÀº °¢ ±¸¹®À» ¼¼¹ÌÄÝ·ÐÀ¸·Î ±¸ºÐÇÕ´Ï´Ù. ³¡¿¡ ¼¼¹ÌÄÝ·Ð ;ÀÌ ³ª¿À¸é ´ÙÀ½ ±¸¹®ÀÌ ½ÃÀ۵Ǵ °ÍÀ¸·Î ÆÄ¾ÇÇÕ´Ï´Ù. ÆÞÀÇ ÁÖ¼®¹®(comment; ÇÁ·Î±×·¥ ½ÇÇà°ú °ü°è¾ø´Â, ¼³¸íÀ» À§ÇÑ ±¸¹®)Àº #À¸·Î ½ÃÀÛÇÕ´Ï´Ù. # ±âÈ£ ´ÙÀ½ÀÇ ³»¿ëÀº ÄÄÆÄÀÏ ½Ã¿¡ ¹«½ÃÇÕ´Ï´Ù.
¸¶Áö¸· ÆÞÀÇ º¯¼öÇüÀº ÇØ½¬(hash; associative array)ÀÔ´Ï´Ù. ÇØ½¬¿Í ¹è¿¿¡ °üÇØ¼´Â ´ÙÀ½ ±Û¿¡¼ ¾ÆÁÖ ÀÚ¼¼ÇÏ°Ô ´Ù·ê °ÍÀÔ´Ï´Ù.
Á¤¸®Çϸé, ÆÞÀÇ ¸í»ç, Áï º¯¼ö¿¡´Â ¼¼ °¡Áö Á¾·ù°¡ ÀÖ½À´Ï´Ù.
$·Î ½ÃÀÛ@·Î ½ÃÀÛ%·Î ½ÃÀÛÀÌÁ¦, ½ºÄÉÀÏ¶ó º¯¼öºÎÅÍ ÀÚ¼¼ÇÏ°Ô ¾Ë¾Æ º¾½Ã´Ù.
À§¿¡¼ ½ºÄÉÀ϶ó´Â ÇÑ °³Â¥¸® ¹«¾ùÀ̶ó°í Çß½À´Ï´Ù. ¼ýÀÚ(number)°¡ µÇ¾úµç ¹®ÀÚ(character)°¡ µÇ¾úµç ¶Ç´Â ¹®ÀÚ¿(string)ÀÌ µÇ¾úµç ÇÑ °³Â¥¸®´Â ´Ù ½ºÄÉÀÏ¶ó º¯¼ö¿¡ ´ãÀ» ¼ö ÀÖ½À´Ï´Ù.
¼ýÀÚ¿¡¼ Ư±âÇÒ ¸¸ÇÑ °ÍÀ¸·Î´Â '0'À¸·Î ½ÃÀÛÇÏ´Â °ÍÀº 8Áø¼ö¸¦ ³ªÅ¸³»°í, '0x'·Î ½ÃÀÛÇÏ´Â °ÍÀº 16Áø¼ö, '0b' ·Î ½ÃÀÛÇÏ´Â °ÍÀº 2Áø¼ö¸¦ ³ªÅ¸³½´Ù´Â °ÍÀÌ ÀÖ½À´Ï´Ù. ´ÙÀ½Àº ¸ðµÎ 10Áø¼ö·Î 255ÀÎ °ªµéÀ» ½ºÄÉÀÏ¶ó º¯¼ö¿¡ ÇÒ´çÇÑ °ÍÀÔ´Ï´Ù.
$octal = 0377; # 8Áø¼ö 377ÀÔ´Ï´Ù.
# 10 Áø¼ö·Î °íÄ¡¸é (3*(8^2)) + (7*8) + 7 = 255
$hexa = 0xff; # 16Áø¼ö ff ÀÔ´Ï´Ù. ¿ª½Ã 10 Áø¼ö·Î´Â 255
$binary = 0b11111111; # 2Áø¼ö 11111111 ÀÔ´Ï´Ù.
$decimal = 255;
ÆÞÀº ¹®ÀÚ¿ 󸮿¡ ÀÖ¾î¼ ÃÖ°À¸·Î ¾Ë·ÁÁø ¾ð¾îÀÔ´Ï´Ù. ¾ÆÁÖ º¹ÀâÇÑ ¾ê±âµéÀÌ ¸¹½À´Ï´Ù. ¿©±â¼´Â ½ºÄÉÀÏ¶ó º¯¼ö¿Í °ü°èµÇ´Â °£´ÜÇÑ °Íµé¸¸ ¾Ë¾Æº¸°í ³Ñ¾î°©½Ã´Ù.
¹®ÀÚ¿ Ç¥Çö ¹æ½Ä(literal representation of strings)¿¡´Â µÎ °¡Áö°¡ ÀÖ½À´Ï´Ù. ´ÙÀ½ µÎ °¡Áö ¹æ½Ä¿¡ ÀÇÇØ Ç¥ÇöµÈ °ÍÀº ¹®ÀÚ¿·Î ÆÄ¾ÇÇÕ´Ï´Ù.
ù°´Â ÀÛÀº µû¿ÈÇ¥·Î ¹ÀÎ ¹®ÀÚµéÀÔ´Ï´Ù. (single-quoted string literals)
'a'
''
'abc'
'\'
'\t\n'
ÀÌµé ¸ðµÎ ¹®ÀÚ¿ÀÔ´Ï´Ù. ½ºÄÉÀÏ¶ó º¯¼ö¿¡ ÇÒ´çÇϸé,
$a = 'abc';
$b = 'what do you want?';
µÎ ¹øÂ°·Î´Â Å« µû¿ÈÇ¥·Î ¹ÀÎ ¹®ÀÚµéÀÔ´Ï´Ù. (double-quoted string literals)
"a"
"abc"
"\tmerong"
¿ª½Ã ½ºÄÉÀÏ¶ó º¯¼ö¿¡ °°Àº ¹æ½ÄÀ¸·Î ÇÒ´çµË´Ï´Ù.
$mystring = "abc";
$bb = "xyz\n";
¿Ö ¶È°°Àº ±â´ÉÀ» ÇÏ´Â °ÍÀ» µÎ °¡Áö³ª ¸¸µé¾î ³ùÀ»±î¿ä? µÑÀº Â÷À̰¡ ÀÖ½À´Ï´Ù. Å« µû¿ÈÇ¥·Î ¹´Â °æ¿ì ¹é½½·¡½¬ Å»Ãâ¹®ÀÚ(\·Î ½ÃÀÛÇÏ´Â ¿©·¯°¡Áö Ư¼ö±â´É ¹®ÀÚ)¿Í "variable interpolation"ÀÌ ÀϾٴ Á¡¿¡¼ ´Ù¸¨´Ï´Ù. ÀÌ°Ô ¹«½¼ ÀǹÌÀ̳ĸé¿ä.
¹é½½·¡½¬·Î ½ÃÀÛÇÏ´Â Å»Ãâ¹®ÀÚ°¡ ÇÁ·Î±×·¡¹Ö¿¡¼ ³Î¸® ¾²À̰í ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, \nÀº ÁٹٲÞÀ» ¶æÇϰí, \t´Â ÅÇÀ» ¶æÇÕ´Ï´Ù. ÀÌ·± ¹é½½·¡½¬ Å»Ãâ¹®ÀÚµéÀÌ ÀÛÀº µû¿ÈÇ¥³»¿¡¼´Â ¾Æ¹« Àǹ̸¦ °®Áö ¸øÇÕ´Ï´Ù.
'abc\n'
À̰ÍÀº ±×³É a, b, c, \, n À̶ó´Â ´Ù¼¸°³ÀÇ ¹®ÀÚ·Î ÀÌ·ïÁø ¹®ÀÚ¿ÀÏ »ÓÀÔ´Ï´Ù.
$single = 'abc\n';
print $single;
À̰ÍÀ» ½ÇÇà½Ã۸é 5°³ÀÇ ¹®ÀÚ°¡ Ãâ·ÂµÉ »ÓÀÔ´Ï´Ù.
¹Ý¸é,
$double = "abc\n";
print $double;
À§ Äڵ带 ½ÇÇàÇϸé abc°¡ ÂïÈù ´ÙÀ½ ÁÙÀ» ¹Ù²ã¼ Ä¿¼°¡ ±ô¹Ú°Å¸®°Ô µË´Ï´Ù. \n¶ó´Â Ư¼öÇÑ Àǹ̸¦ °¡Áø ¹®ÀÚ°¡ Å« µû¿ÈÇ¥ ¾È¿¡¼´Â Ưº°ÇÑ Àǹ̷Π¾²À̱⠶§¹®ÀÔ´Ï´Ù. ¸¶Âù°¡Áö·Î Ư¼öÇÑ Àǹ̸¦ °®´Â ¹®ÀÚ¸¦ ±× ¹®ÀÚ °íÀ¯ÀÇ Àǹ̷Π»ç¿ëÇϱâ À§Çؼ´Â ¹é½½·¡½¬¸¦ ÀÌ¿ëÇØ¼ 'Å»Ãâ'À» ÇØÁà¾ß Çϴµ¥ ÀÌ·¯ÇÑ Å»ÃâÀÌ Å« µû¿ÈÇ¥³»¿¡¼¸¸ Àǹ̰¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ´Þ·¯ Ç¥½Ã $´Â ½ºÄÉÀÏ¶ó º¯¼ö¸¦ ¸¸µå´Â µ¥ »ç¿ëµÇ´Â Ư¼öÇÑ ¹®ÀÚÀÔ´Ï´Ù. 'ÁøÂ¥ ´Þ·¯' Ç¥½Ã·Î ¾²·Á¸é ÀÌ·¸°Ô ÇØ¾ß ÇÕ´Ï´Ù.
print "I have \$5.";
¸¸¾à $ ¾Õ¿¡ \¸¦ ½á¼ Å»ÃâÇÏÁö ¾ÊÀ¸¸é ´Þ·¯ Ç¥½Ã°¡ ¶ßÁö ¾Ê½À´Ï´Ù. ÀÌ·± °ÍÀÌ ÀÛÀº µû¿ÈÇ¥¿¡¼´Â ¾ÈµË´Ï´Ù.
print 'I have \$5.';
À̰ÍÀ» Ãâ·ÂÇØ º¸¸é I have \$5.¶ó°í Ãâ·ÂµË´Ï´Ù. ¹é½½·¡½¬¸¦ ÀÌ¿ëÇÑ Å»ÃâÀÌ ¾ÈµË´Ï´Ù.
ÀÛÀº µû¿ÈÇ¥º¸´Ù´Â Å« µû¿ÈÇ¥°¡ ´õ È·ÁÇÏ°Ô »ý°å±â ¶§¹®¿¡ ºÎ°¡ÀûÀÎ ±â´ÉÀÌ ÀÖ´Ù°í ÀÌÇØ¸¦ Çϸé ÁÁ½À´Ï´Ù. (ÀúÀÇ ¾ïÁö°¡ ¾Æ´Õ´Ï´Ù. °ð ºñ½ÁÇÑ ³í¸®°¡ ¿©±âÀú±â¼ µîÀåÇÕ´Ï´Ù.)
´ÙÀ½À¸·Î "variable interpolation"¿¡ ´ëÇØ¼ ¾Ë¾Æº¸ÁÒ.
$word = 'perl';
print "$word is fun!";
À§ Äڵ带 ½ÇÇàÇϸé perl is fun!À̶ó°í Ãâ·ÂµË´Ï´Ù. ÀÌó·³ º¯¼ö°¡ ¹®ÀÚ¿ Áß°£¿¡ ¼¯¿© ÀÖÀ» ¶§ ±× º¯¼öÀÇ °ªÀÌ º¯¼ö À̸§À» ´ëüÇÏ´Â °ÍÀ» "variable interpolation"À̶ó°í ÇÕ´Ï´Ù. ½ÇÁ¦ ÄÚµù¿¡¼ ¸Å¿ì Æí¸®ÇÏ°Ô È°¿ëÇÒ ¼ö ÀÖ´Â ±â´ÉÀÔ´Ï´Ù.
±×·±µ¥ ÀÛÀº µû¿ÈÇ¥¿¡¼´Â ¾ÈµË´Ï´Ù.
$word = 'perl';
print '$word is fun !';
½ÇÇàÇØ º¸¸é ¾î¶»°Ô µÉ Áö ÁüÀÛÀÌ µÇÁÒ?
¹®ÀÚ¿°ú °ü°èµÇ´Â ¿¬»êÀÚ(operator)¿¡´Â Å©°Ô µÎ °¡Áö°¡ ÀÖ½À´Ï´Ù. ÀÚÁÖ ¾²ÀÌ´Â °ÍÀº concatenation operatorÀÎ . ÀÔ´Ï´Ù. (Á¡ ÇѰ³) concatenationÀº ¹®ÀÚ¿À» ÇÕÃÄÁÖ´Â °ÍÀÔ´Ï´Ù.
$abc = "hello" . " world";
print $abc;
À̰ÍÀº
$abc = "hello world";¿Í ¸¶Âù°¡ÁöÀÔ´Ï´Ù.
C ¾ð¾î ¾²´Â »ç¶÷µéÀÌ ¹«Ã´ ºÎ·¯¿öÇÏ´Â °Í ÁßÀÇ Çϳª°¡ concatenation operatorÀÔ´Ï´Ù.
¶Ç Çϳª´Â x ÀÔ´Ï´Ù. °öÇϱâÀÔ´Ï´Ù.
$a = 'perl';
$b = $a x 3;
print $b;
$b¿¡´Â 'perlperlperl'ÀÌ ´ã±â°Ô µË´Ï´Ù.¹Ýº¹ÀÔ´Ï´Ù. ¾ÆÁÖ ¼Ó±â ½¬¿î ÄûÁî°¡ ÀÖ½À´Ï´Ù.
$aa = 5 x 4;
print $aa;
À̰ÍÀº 20ÀÌ Ãâ·ÂµÇ´Â°Ô ¾Æ´Ï¶ó, 5555°¡ Ãâ·ÂµË´Ï´Ù. ¼ýÀÚ °ö¼ÀÀº *ÀÌÁö x°¡ ¾Æ´Õ´Ï´Ù. x´Â ¹®ÀÚ¿À» ¹Ýº¹ÇÏ´Â ¹®ÀÚ¿ ó¸® ¿¬»êÀÚÀÔ´Ï´Ù.
½ºÄÉÀÏ¶ó º¯¼ö¿¡ ¼ýÀÚµµ ´ã±â°í ¹®ÀÚµµ ´ã±ä´Ù¸é ÀÌ°Ô È¥¶õÀ» ÀÏÀ¸Å°Áö ¾ÊÀ»±î¶ó´Â ¿°·Á°¡ µé ¼ö ÀÖ½À´Ï´Ù. ´ÙÇེ·´°Ôµµ ÆÞÀº ¼ýÀÚ¿Í ¹®ÀÚ¿À» Çʿ信 ¸Â°Ô ¾Ë¾Æ¼ ÀüȯÀ» ÇÕ´Ï´Ù. (automatic conversion between numbers and strings) ¿¬»êÀÚ¸¦ º¸°í ¹®ÀÚ¿·Î Ãë±ÞÇÏ´Â°Ô ¸ÂÀ¸¸é ¹®ÀÚ¿·Î, ¼ýÀÚ°¡ ¸ÂÀ¸¸é ¼ýÀÚ·Î Ãë±ÞÇÕ´Ï´Ù.
print "3" * "4";
À̰ÍÀº 12°¡ Ãâ·ÂµË´Ï´Ù. ºÐ¸íÈ÷ "3"µµ ¹®ÀÚ¿À̰í "4"µµ ¹®ÀÚ¿ÀÌÁö¸¸ ¿¬»êÀÚ°¡ ¼ýÀÚ ¿¬»êÀÚÀÎ *À̱⠶§¹®¿¡ ¾Ë¾Æ¼ º¯È¯ÇÕ´Ï´Ù.
ÀÌ·¸°Ô ÆÞÀº ¹®¸Æ(context)¿¡ ¸Â°Ô ÀÚµ¿À¸·Î 󸮵Ǵ °ÍÀÌ ¸¹½À´Ï´Ù. Áß¿äÇÑ À̾߱âÀÔ´Ï´Ù.
ÆÞÀº ¹®¸Æ¿¡ µû¶ó ¶È°°Àº ¹®ÀåÀÌ ÀüÇô ´Ù¸¥ °ÍÀ» ÀǹÌÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀÌ ¹Ù·Î ÀÚ¿¬¾îÀÇ Æ¯¼ºÀ̱⵵ ÇÕ´Ï´Ù. ¶È°°Àº "µ·"À̶ó´Â ´Ü¾î¶óµµ "µ·À» ¹ú´Ù"¿¡¼ÀÇ "µ·" °ú "¸Ó¸®°¡ µ· »ç¶÷"¿¡¼ÀÇ "µ·"Àº ÀüÇô ´Ù¸¨´Ï´Ù. ÆÞÀº ÀÌ·± ÀÚ¿¬¾îÀÇ Æ¯Â¡À» °®°í ÀÖ½À´Ï´Ù. À̰ÍÀÌ ÆÞÀ» ÆÞ´ä°Ô ¸¸µì´Ï´Ù.
¹®ÀÚ¿ ó¸®¿Í °ü·ÃÇØ¼ ÆÞÀº ´Ù¾çÇÑ ÇÔ¼ö¿Í ±â´ÉµéÀ» °®°í ÀÖ½À´Ï´Ù¸¸, ±×°ÍÀº º°µµÀÇ ¹®¼¿¡¼ »ìÆìº¸°Ú½À´Ï´Ù. ¿©±â¼´Â ¹®ÀÚ¿ ó¸® °ü·Ã ¿¬»êÀÚ¿¡ ., x°¡ ÀÖ´Ù´Â Á¤µµ·Î¸¸ ÇØµÎ°Ú½À´Ï´Ù.
¸¶Áö¸·À¸·Î ½ºÄÉÀÏ¶ó º¯¼öÀÇ ÇÒ´ç¿¡ ´ëÇØ¼ ÇѰ¡Áö ´õ ¾ê±âÇϰí ÀÌ ±ÛÀ» Á¢°Ú½À´Ï´Ù. ½ºÄÉÀÏ¶ó º¯¼ö¿¡ °ªÀ» ÇÒ´çÇÏ´Â °ÍÀº ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í ¸¶Âù°¡Áö·Î =¸¦ »ç¿ëÇÕ´Ï´Ù.
$scalar = 13;
ÇÒ´ç ¿¬»êÀÚ¿¡´Â = ¿Ü¿¡ ´Ù¸¥ °ÍÀÌ ÀÖ½À´Ï´Ù. C¿¡¼¿Í °°Àº binary assignment operator°¡ ÀÖ½À´Ï´Ù.
$count += 5;
À̰ÍÀº,
$count = $count + 5;
¿Í °°Àº ÀǹÌÀÔ´Ï´Ù. ¸¶Âù°¡Áö·Î,
$multiply *= 2;
µµ °¡´ÉÇÕ´Ï´Ù.
ÀÌ·¯ÇÑ binary assignment operatorÁß¿¡ °¡Àå ÀÚÁÖ ¾²ÀÌ´Â °ÍÀº,
$name .= " ";
= ¾ÕÀÇ Á¡¿¡ ÁÖÀÇÇϼ¼¿ä. Á¡Àº concatenation, ¹®ÀÚ¿À» ÇÕÃÄÁÝ´Ï´Ù. µû¶ó¼ À§ÀÇ ±¸¹®Àº,
$name = $name . " ";
°ú °°Àº Àǹ̷Î, $name º¯¼ö °ª¿¡ ½ºÆäÀ̽º¸¦ ºÙ¿©¼ ´Ù½Ã ÇÒ´çÇÑ´Ù´Â ÀǹÌÀÔ´Ï´Ù. ÀÌ·¸°Ô º¯¼ö°ª¿¡ º¯È¸¦ ÁÙ ¶§ »ç¿ëÇÏ´Â °ÍÀÌ binary assignment operatorÀÔ´Ï´Ù.
¸¶Áö¸· ¿¹´Â ²À ±â¾ïÇØ µÎ¼¼¿ä.
½ºÄÉÀÏ¶ó º¯¼ö¿Í °ü°èµÇ´Â Á¶Àý¹®¿¡´Â if¿Í whileÀÌ ÀÖ½À´Ï´Ù. ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡µµ ´ëºÎºÐ Á¸ÀçÇÏ´Â °ÍµéÀÔ´Ï´Ù. À̰ÍÀº ÆÞÀÇ ±¸¹®°ú ·çÇÁ¿¡¼ ÀÚ¼¼È÷ ´Ù·ê °ÍÀ̹ǷΠ¿©±â¼´Â °¡º±°Ô ±¸°æ¸¸ ÇØº¾½Ã´Ù. ifºÎÅÍ º¾½Ã´Ù.
if (something) { do this }
À§¿Í °°Àº ÇüÅ·Π¾²ÀÔ´Ï´Ù. somethingÀÌ 'Âü' À̸é Áß°ýÈ£ ¾ÈÀÇ ±¸¹®À» ½ÇÇàÇ϶ó´Â ÀǹÌÀÔ´Ï´Ù.
ÀÚ¼¼ÇÑ ¾ê±â¿¡ µé¾î°¡±â Àü¿¡ ½ºÄÉÀÏ¶ó º¯¼ö¿Í °ü°èµÇ´Â ¿¬»êÀÚ ¸î °³¸¦ ´õ »ìÆìº¸°í ¾ê±â¸¦ Ç®¾î°©½Ã´Ù. ÆÞ¿¡µµ ¿©Å¸ ¾ð¾î¿Í ¸¶Âù°¡Áö·Î ºñ±³¿¬»êÀÚ(comparison operators)°¡ ÀÖ½À´Ï´Ù. Å©³Ä, ÀÛÀ¸³Ä. °°À¸³Ä, ´Ù¸£³Ä µîµîÀ» ºñ±³ÇÏ´Â ¿¬»êÀÚÀÔ´Ï´Ù. C¿Í °ÅÀÇ ´ëµ¿¼ÒÀÌÇÕ´Ï´Ù. ÇÑ °¡Áö Â÷ÀÌÁ¡ÀÌ ÀÖ´Ù¸é ¹®ÀÚ¿ÀÇ °æ¿ì ºñ±³ ¿¬»êÀÚ°¡ µû·Î ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ¶ó¸¶ºÏ¿¡ Àִ ǥ¸¦ º¾½Ã´Ù.
| ºñ ±³ | ¼ýÀÚ(Numeric) | ¹®ÀÚ¿(String) |
| °°´Ù | == | eq |
| °°Áö¾Ê´Ù | != | ne |
| ÀÛ´Ù | < | lt |
| Å©´Ù | > | gt |
| À۰ųª°°´Ù | <= | le |
| Å©°Å³ª°°´Ù | >= | ge |
¼ýÀÚÀÎ °æ¿ì¿Í ¹®ÀÚ¿ÀÎ °æ¿ì°¡ °¢°¢ µû·Î Á¸ÀçÇϱ⠶§¹®¿¡ ÁÖÀÇÇØ¼ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ´ÙÀ½ÀÇ ¿¹¸¦ º¸¼¼¿ä.
30 == 30 # ÂüÀÌÁÒ?
35 == 35.0 # ¿ª½Ã ÂüÀÔ´Ï´Ù.
'35' eq '35.0' # °ÅÁþ ÀÔ´Ï´Ù. ¹®ÀÚ¿ '35' ¿Í '35.0' Àº ÀüÇô ´Ù¸¥ °ÍÀÌÁÒ
±×·¯¸é ¹®ÀÚ¿¿¡¼ 'Å©´Ù', 'ÀÛ´Ù', 'Å©°Å³ª °°´Ù'´Â Àǹ̴ ¹»±î¿ä.
¾Æ½ºÅ°(ASCII) °ªÀÔ´Ï´Ù. (¾Æ½ºÅ°¿Í ¹ÙÀ̳ʸ®) ¸¸¾à ù±ÛÀÚÀÇ ¾Æ½ºÅ° °ªÀÌ °°´Ù¸é ´ÙÀ½ ±ÛÀÚ¸¦ ºñ±³ÇÕ´Ï´Ù. µû¶ó¼ °°Àº ¹®ÀÚ·Î ½ÃÀÛµÈ´Ù¸é ±ÛÀÚ ¼ö°¡ ¸¹Àº ÂÊÀÌ ´õ 'Å«' ¹®ÀÚ°¡ µË´Ï´Ù.
'floccinaucinihilipilification' gt 'merong' # ÂüÀÌÁÒ?
' ' gt '' # °ø¹é 2ÄÀº °ø¹é 1ĺ¸´Ù ´õ Å©´Ï±î Âü
¼ýÀÚ¿¡¼¿Í ¹®ÀÚ¿¿¡¼ ºñ±³ ¿¬»êÀÚ°¡ ´Ù¸£´Ù´Â °ÍÀ» ²À ÁÖÀÇÇϼ¼¿ä. ==¿Í eq¸¦ À߸ø »ç¿ëÇÏ´Â °æ¿ì°¡ ¸Å¿ì ¸¹½À´Ï´Ù. ±×¸®°í ÀÌ·± ¹ö±×´Â ã±â ½±Áö ¾Ê½À´Ï´Ù. Èí»ç ==¸¦ ½á¾ß ÇÒ °÷¿¡¼ =¸¦ »ç¿ëÇÑ ¹ö±×¸¦ ã±â°¡ Èûµç °Í°ú ¸¶Âù°¡ÁöÀÔ´Ï´Ù. ²À ÁÖÀÇÇϼ¼¿ä.
ÀÌÁ¦ ºñ±³¿¬»êÀÚ¸¦ if ±¸¹®¿¡¼ »ç¿ëÇØ º¾½Ã´Ù.
$myname = 'myonghon';
if($myname eq 'myonghon') { print "This code is obviously stupid";}
if ´ÙÀ½ÀÇ °ýÈ£¾ÈÀÌ 'Âü'À̹ǷΠprint ±¸¹®ÀÌ ½ÇÇàµË´Ï´Ù.
À§¿Í °°Àº °æ¿ì´Â Âü,°ÅÁþÀÌ ¸í¹éÇÕ´Ï´Ù¸¸Àº ¾Ö¸ÅÇÑ °æ¿ìµµ ÀÖ½À´Ï´Ù. À̰Ͱú °ü°èµÇ´Â °ÍÀ¸·Î "ºÒ¸®¾ð º¯¼ö"(Boolean variables)°¡ ÀÖ½À´Ï´Ù. Âü ¾Æ´Ï¸é °ÅÁþ µÎ °¡Áö °ª Áß Çϳª¸¸ °®´Â º¯¼öÇüÀ» ºÒ¸®¾ð º¯¼ö¶ó°í ÇÕ´Ï´Ù. ÄûÁîÀÔ´Ï´Ù.
$zero = '0';
if($zero) { print "This is true !" }
À§ÀÇ Äڵ带 ½ÇÇàÇϸé "This is true !"°¡ Ãâ·Â µÉ±î¿ä, ¾È µÉ±î¿ä?
À§ÀÇ ÄÚµå´Â $zero°¡ 'Âü'À̸é print ±¸¹®ÀÌ ½ÇÇàµË´Ï´Ù. '°ÅÁþ'ÀÌ¸é ½ÇÇàµÇÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ÀÌ °æ¿ì $zero º¯¼ö´Â ºÒ¸®¾ð º¯¼ö°¡ µË´Ï´Ù. Âü ¶Ç´Â °ÅÁþ µÑ ÁßÀÇ ÇϳªÀÇ °ªÀ» °®½À´Ï´Ù. À§ÀÇ Äڵ带 ½ÇÇàÇϸé print ±¸¹®ÀÌ ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù. ¿Ö ±×·²±î¿ä?
¾î¶² °æ¿ì¿¡ 'Âü'ÀÌ°í ¾î¶² °æ¿ì¿¡ '°ÅÁþ'ÀÎÁö¸¦ »ý°¢ÇØ º¾½Ã´Ù. ´ÙÀ½°ú °°Àº ±ÔÄ¢ÀÌ ÀÖ½À´Ï´Ù.
undef´Â º¯¼ö¿¡ ¾Æ¹«°Íµµ ÇÒ´çÇÏÁö ¾ÊÀº »óÅÂ, Áï ¾Æ¹«°Íµµ ¾ø´Â »óŸ¦ ¾ê±âÇÕ´Ï´Ù.)¹®ÀÚ¿ ÇüÅ·ΠµÈ '0'µµ ¼ýÀÚ 0À¸·Î Ãë±ÞµÇ¹Ç·Î À§ÀÇ ÄÚµå´Â if() ¾ÈÀÌ °ÅÁþÀÌ µÇ¾î¼ "This is true !"°¡ Ãâ·ÂµÇÁö ¾Ê½À´Ï´Ù.
½ºÄÉÀÏ¶ó º¯¼ö¿Í °ü°èµÇ´Â ´Ù¸¥ Á¶Àý¹®À¸·Î while ±¸¹®ÀÌ ÀÖ½À´Ï´Ù.
whileÀº foró·³ '·çÇÁ'(loop)¸¦ ¸¸µé ¶§ »ç¿ëÇÕ´Ï´Ù.
while (something) { do this endlessly }
somethingÀÌ 'Âü'ÀÎ ÇÑ,(while something is true...) Áß°ýÈ£ ¾ÈÀÇ ±¸¹®À» ¹«ÇÑÈ÷ ¹Ýº¹ÇÑ´ÙÀÔ´Ï´Ù. ¹°·Ð ºüÁ®³ª¿À´Â ¹æ¹ýµµ ÀÖ½À´Ï´Ù.
ifÇϰí´Â ±¸ºÐÇØ¾ß ÇÕ´Ï´Ù. if´Â ÂüÀÎ °æ¿ì Áß°ýÈ£ ¾ÈÀÇ ±¸¹®À» ÇÑ ¹ø ½ÇÇàÇÏ°í ³¡ÀÔ´Ï´Ù¸¸ whileÀº '·çÇÁ'¸¦ ÇÕ´Ï´Ù. °è¼Ó ¹Ýº¹ÇÕ´Ï´Ù.
¿¹¸¦ µé¾îº¸¸é,
$count = 0;
while ($count < 10 ) {
$count += 1;
print "Ä«¿îÆ®´Â $count ÀÔ´Ï´Ù\n";
}
Á¤¸®ÇØ º¾½Ã´Ù. ½ºÄÉÀÏ¶ó º¯¼ö¿Í °ü°èµÇ´Â Á¶Àý¹®¿¡´Â if ±¸¹®°ú while ·çÇÁ°¡ ÀÖ½À´Ï´Ù. ¿©±â¿¡ °ü°èµÇ´Â ³»¿ëÀ¸·Î ºñ±³¿¬»êÀÚ, ºÒ¸®¾ð º¯¼ö¶ó´Â °ÍÀÌ ÀÖ¾ú½À´Ï´Ù. ±×¸®°í ¹®ÀÚ¿ÀÇ °æ¿ì ºñ±³¿¬»êÀÚ°¡ µû·Î Á¸ÀçÇÑ´Ù´Â »ç½Çµµ Áß¿äÇÑ ³»¿ëÀÔ´Ï´Ù.
