ÇÑ °³Â¥¸® ¹«¾ùÀ» ´ã´Â º¯¼öÀÎ '½ºÄÉÀ϶ó' °¡ ÀÖ´Ù¸é ¿©·¯°³ÀÇ ¹«¾ùÀ» ´ã´Â º¯¼ö·Î ¹è¿(array, list)ÀÌ ÀÖ½À´Ï´Ù. ¹è¿Àº ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡µµ ´Ùµé °®ÃçÁ® ÀÖ¾î¼ ¸¹ÀÌ Àͼ÷ÇÏ½Ç °Ì´Ï´Ù. ¹è¿Àº ¿ì¸®°¡ Áß°íµù¶§ ¹è¿î 'ÁýÇÕ' ó·³ »ý°¢ÇϽøé ÀÌÇØ°¡ ½±½À´Ï´Ù. ÁýÇÕÀº ÁýÇÕÀε¥ ¿ø¼ÒÀÇ '¼ø¼' °¡ ÀÖ´Â ÁýÇÕÀÌ ¹Ù·Î ¹è¿ ÀÔ´Ï´Ù.
@array1 = (1, 2, 3, 4, 5);
@array2 = ('a', "b", " ", 34);
ÀÌ·±°ÍÀÌ ÆÞÀÇ ¹è¿ ÀÔ´Ï´Ù. ¸ÕÀú ÁÂÃø¿¡ ÀÖ´Â º¯¼ö¸¦ ¹è¿ º¯¼ö(array variable)¶ó ÇÕ´Ï´Ù. ¿ìÃøÀÇ °ýÈ£·Î ¹ÀÎ ºÎºÐÀº ¸®½ºÆ®(list)¶ó ÇÕ´Ï´Ù. ¹è¿°ú ¸®½ºÆ®´Â Å©°Ô ºÁ¼ °°Àº Àǹ̷Π¾²ÀÔ´Ï´Ù. ¿ì¼±Àº ±×·¸°Ô ¾Ë¾ÆµÎ½Ã¸é Æí¸®ÇÏ½Ç°Í °°½À´Ï´Ù.
¹è¿º¯¼ö´Â @ ·Î ½ÃÀÛÇÏ´Â º¯¼ö¶ó´Â Á¡À» ÁÖ¸ñÇϽʽÿÀ. array ÀÇ "a" ¿Í @ ÀÌ ´à¾Ò´Ù´Â °ÍÀ¸·Î ±â¾ïÇÏ½Ã¸é µË´Ï´Ù. ½ºÄÉÀÏ¶ó°¡ "s" ¸¦ ´àÀº $ ·Î ½ÃÀÛÇÏ´Â °Í󷳿ä.
¶Ç ¿©·¯ ¿ø¼Ò¸¦ ¹¾îÁÖ´Â ±âÈ£·Î °ýÈ£ ( ) ¸¦ ¾²°í ÀÖ´Ù´Â Á¡µµ Àß ºÁµÎ¼¼¿ä.
¹è¿À» ¸¸µå´Â °Ç ¾ÆÁÖ °£´ÜÇÏÁÒ?
±×·±µ¥ ¹è¿Àº ¿ø¼ÒÀÇ ¼ø¼°¡ ÀÖ´Ù°í ÇßÁÒ.
À̰ÍÀ» ¾î¶»°Ô Ç¥ÇöÇϴ°¡ ÇÏ¸é ¿ø¼Ò 'Çϳª'´Â ½ºÄÉÀ϶ó(scalar)°¡ µÇ¹Ç·Î, (ÆÞ¿¡¼µµ ´Ù¸¥ ¾ð¾îó·³ 0 ºÎÅÍ ¼¾´Ù´Â Á¡¸¸ ÁÖÀÇÇÏ½Ã¸é µË´Ï´Ù)
$array1[0]ÀÌ @array1ÀÇ Ã¹¹øÂ° ¿ø¼Ò°¡ µË´Ï´Ù. ¾ÕÀÌ $·Î ½ÃÀÛÇÏÁÒ? ±×¸®°í ´ë°ýÈ£ [ ]¸¦ ¾²±¸¿ä. ¿ø¼Ò Çϳª´Ï±î $ ·Î ½ÃÀÛÇÏ´Â ½ºÄÉÀÏ¶ó°¡ µË´Ï´Ù. Çò±ò¸®Áö ¸¶¼¼¿ä.
°°Àº½ÄÀ¸·Î @array2 ¹è¿ÀÇ 4 ¹øÂ° ¿ø¼Ò´Â $array2[3] ÀÔ´Ï´Ù.
±×·¯¹Ç·Î ¹è¿ ³»ÀÇ ¾î¶² ¿ø¼Ò¿¡ Á¢±ÙÇϰųª »õ·Î¿î ¿ø¼Ò¸¦ Áý¾î³Ö´Â °ÍÀº ´ÙÀ½°ú °°ÀÌ ÇÏ½Ã¸é µË´Ï´Ù.
@sample = (1, 2, "1", 'perl');
print $sample[3]; # @sample ÀÇ 4¹øÂ° ¿ø¼Ò Ãâ·Â, perl ÀÌ ÂïÇô³ª¿À°ÚÁÒ?
print $sample[0] = 'a'; # ù¹øÂ° ¿ø¼ÒÀÎ 1 À» ¹®ÀÚ¿ a ·Î ¹Ù²Þ
# Áï @sample Àº ÀÌÁ¦ ('a',2,"1",'perl')ÀÌ µÊ
$sample[7] = "fly"; # 6 ¹øÂ° ¿ø¼Ò·Î fly ¶ó´Â ¹®ÀÚ¿À» ³Ö¾îÁÜ
# @sample Àº ÀÌÁ¦ ('a',2,"1",'perl',,"fly")
print @sample; # ¹è¿º¯¼ö ¾Õ¿¡ ¹Ù·Î print ±¸¹®À» ¾µ ¼öµµ ÀÖ½À´Ï´Ù.
$sample[3] = ''; # 4 ¹øÂ° ¿ø¼Ò¸¦ Áö¿ò
# ÀÌÁ¦ @sample Àº ('a',2,"1",,,"fly")
$sample[7] .= " by night"; # fly ´Â fly by night À¸·Î ¹Ù²ò´Ï´Ù.
# concatenation operator . ¸¦ ÁÖÀÇÇϼ¼¿ä
ÇÑ °¡Áö ÁÖÀÇÇÏ½Ç Á¡Àº ¹è¿, ½ºÄÉÀ϶ó, ÇØ½¬ µîµîÀº °¢°¢ÀÇ ³×ÀÓ½ºÆäÀ̽º(name space) °¡ ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù. ¹«½¼ ¾ê±â³Ä¸é¿ä. @name°ú $nameÀº ¾Æ¹«·± »ó°üÀÌ ¾ø´Ù´Â ¾ê±é´Ï´Ù. ÁÖÀÇÇÏ¼Å¾ß ÇÕ´Ï´Ù. $name[0]Àº @name À̶ó´Â ¹è¿ÀÇ Ã¹¹øÂ° ¿ø¼Ò·Î $nameÀ̶ó´Â ½ºÄÉÀÏ¶ó º¯¼ö¿Í´Â ¾Æ¹«·± »ó°üÀÌ ¾ø½À´Ï´Ù.
ÀÚ.. ±×¸®°í ¹è¿ÀÇ ´ë°ýÈ£ [] ¾ÈÀº ²À ¼ýÀÚ°¡ µé¾î°¡¾ß ÇÏ´Â°Ç ¾Æ´Õ´Ï´Ù. ¼ýÀÚ°¡ ÇÒ´çµÈ º¯¼ö°¡ µé¾î°¥ ¼öµµ ÀÖ½À´Ï´Ù. ±×¸®°í ¼Ò¼ö´Â ¼Ò¼ýÁ¡ ¾Æ·¡ÀÚ¸®°¡ ¹ö·ÁÁý´Ï´Ù.
$number = 1;
print $sample[$number];
print $sample[$number+1.5]; # $sample[2]¿Í °°Àº ÀÇ¹Ì ÀÔ´Ï´Ù.
¹è¿ÀÇ ¸¶Áö¸· ¿ø¼Ò°¡ ¸î¹øÂ°Àΰ¡´Â ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
$#sample
¿¹¸¦µé¾î,
@aa = (2,4,8,10,12);
print $#aa; # 4 °¡ Ãâ·ÂµË´Ï´Ù. ¸¶Áö¸· ¿ø¼Ò´Â $aa[4] À̹ǷÎ
À§ÀÇ $#aa¿Í °°Àº °ÍÀº ¹è¿ÀÇ Å©±â¸¦ ¾Ë¾Æº¸´Âµ¥ »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
$#aa + 1 ÀÌ ¹Ù·Î @aa ¹è¿ÀÇ Å©±â°¡ µÇÁÒ. ¿ø¼Ò°¡ 5 °³. ¹è¿Àº 0 ºÎÅÍ ¼¼´Ï±î $#aa ¿¡´Ù 1À» ´õÇØÁÖ´Â °ÍÀÔ´Ï´Ù.
¹è¿ÀÇ Å©±â¸¦ Ç¥½ÃÇØÁÖ´Â ´Ù¸¥ ¹æ¹ýÀ¸·Î´Â scalar ¶ó´Â ¿¬»êÀÚ°¡ ÀÖ½À´Ï´Ù.
@aa = (2,4,8,10,12);
print scalar @aa;
5°¡ Ãâ·Â µË´Ï´Ù.
°á±¹ ¹è¿ÀÇ ¸¶Áö¸· ¿ø¼Ò¸¦ Ãâ·ÂÇØÁÖ´Â 'ÀϹݽÄ'Àº ÀÌ·¸°Ô µÉ °Ì´Ï´Ù.
print $blah[$#blah];
Á¶±Ý ¾î·Á¿î ³»¿ëÀ¸·Î, $#arrayname Àº ¹è¿ÀÇ Å©±â¸¦ ¹Ì¸® ¼³Á¤Çϴµ¥ »ç¿ëµÉ ¼öµµ ÀÖ½À´Ï´Ù. Áï, $#someArray = 10; À̶ó°í Çϸé @someArray ¶ó´Â ¹è¿À» À§ÇØ ¹Ì¸® 11 ÄÀÇ ¸Þ¸ð¸®¸¦ ÁغñÇÏ°Ô µÇ´Â °ÍÀÌÁÒ. ÀÌó·³ Å©±â¸¦ ¹Ì¸® ¾Æ´Â ¾î¶² µ¥ÀÌŸ¸¦ ¹è¿¿¡ ´ãÀ»¶§ ¹Ì¸® Å©±â¸¦ ¼³Á¤ÇØµÎ¸é ¸Þ¸ð¸®¸¦ À̰÷Àú°÷ ºÐ»êÇØ¼ È®º¸ÇÏ´Â ÀÏÀÌ ´ú¾îÁö¹Ç·Î ÇÁ·Î±×·¥ ½ÇÇà¼Óµµ°¡ ´õ »¡¶óÁú ¼ö ÀÖ°Ô µË´Ï´Ù. ÀÏ»óÀûÀÎ ÀÛÀº ÇÁ·Î±×·¥À» ¸¸µé¶§¿¡´Â º° °ü°è°¡ ¾ø´Â ³»¿ëÀÌÁö¸¸, º¹ÀâÇϰí Å« µ¥ÀÌŸ¸¦ ´Ù·ç´Â ÇÁ·Î±×·¥À» ¸¸µå´Â °æ¿ì ÀÌ·± ºÎºÐµµ Áß¿äÇØÁú ¼ö ÀÖ½À´Ï´Ù. Âü°í»ï¾Æ..
À§¿¡¼ @array = (1,2,3);°ú °°Àº °ÍÀÌ ¹è¿À̶ó°í Çߴµ¥ Á» ´õ ¾ö¹ÐÇÏ°Ô ¾ê±âÇϸé @array´Â ¹è¿ º¯¼öÀ̰í ÀÌ ¹è¿ º¯¼ö¿¡ ÇÒ´çµÇ´Â °ýÈ£·Î ¹ÀÎ ºÎºÐÀº ¸®½ºÆ®(list) ¶ó°í ÇÕ´Ï´Ù. ¸®½ºÆ®´Â ²À ¹è¿ º¯¼ö¿¡ ÇÒ´çµÇ¾î¾ß¸¸ ÇÏ´Â°Ç ¾Æ´Õ´Ï´Ù. ±×³É (1,2,3) ÀÇ ÇüÅ·εµ Á¸ÀçÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾î·µç, ÀÌ ¸®½ºÆ® Ç¥Çö¹æ½Ä¿¡´Â ¸î °¡Áö Æí¸®ÇÑ °ÍÀÌ ÀÖ½À´Ï´Ù.
ù° .. ÀÔ´Ï´Ù.(Á¡µÎ°³) ´ÙÀ½À» º¸¼¼¿ä.
(1..5) # (1,2,3,4,5) ¿Í ¶È°°½À´Ï´Ù
(1,2,3..6,7) # (1,2,3,4,5,6,7) °ú ¶È°°½À´Ï´Ù
¿¬¼ÓµÇ´Â ºÎºÐÀº Á¡ µÎ°³·Î ´ëüÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù. À̰͵µ µË´Ï´Ù.
('a'..'z') # (a,b,c,d..z) ¿Í ¶È°°½À´Ï´Ù. a ºÎÅÍ z ±îÁö
°Å²Ù·Î´Â ¾ÈµË´Ï´Ù.
(10..1) # () ¿Í ¶È°°½À´Ï´Ù. ¾Æ¹«°Íµµ ¾Èµé¾îÀÖ°Ô µÊ
¶ÇÇϳª ¸®½ºÆ® Ç¥Çö¹æ½Ä¿¡¼ ÀÚÁÖ ¾²ÀÌ´Â Áß¿äÇÑ °ÍÀ¸·Î qw °¡ ÀÖ½À´Ï´Ù. ÀÌ°Ç µû¿ÈÇ¥¸¦ ´ëÃ¼ÇØÁÝ´Ï´Ù. º¸½ÃÁÒ. ("a","b","c","d","e")´Â qw/a b c d e/¿Í ¶È°°½À´Ï´Ù. ÀÏÀÏÀÌ µû¿ÈÇ¥¸¦ ¾²Áö ¾Ê¾Æµµ µÇ¹Ç·Î ¹®ÀÚ¿À» ´ã´Â ¹è¿À» ¸¸µé¶§ ¸Å¿ì ¸Å¿ì Æí¸®ÇÕ´Ï´Ù. qw ´ÙÀ½¿¡´Â ²À ½½·¡½¬°¡ ¿Í¾ßÇÏ´Â°Ç ¾Æ´Õ´Ï´Ù. ¾Õ µÚ°¡ ¶È°°±â¸¸ ÇÏ¸é µË´Ï´Ù. Áï.
qw # a b c d e #;
qw ! a b c d e !;
qw { a b c d e };
qw [ a b c d e ];
("a","b","c","d","e");
ÀÌ°Ç ¸ðµÎ ´Ù ¶È°°½À´Ï´Ù. { }¿Í [ ]´Â ¾ÕµÚ°¡ ´Ù¸£Áö¸¸ ÇÑ ½ÖÀ̹ǷΠµË´Ï´Ù.
¸®½ºÆ®´Â ¹è¿º¯¼ö¿¡ ÇÒ´çµÇÁö ¾Ê°íµµ Á¸ÀçÇÒ ¼ö ÀÖ´Ù´Â ¸»¾¸µå·È¾úÁÒ? ±×·¯¹Ç·Î ´ÙÀ½°ú °°Àº ¹æ½ÄÀÌ °¡´ÉÇÕ´Ï´Ù.
($name, $value) = ("myonghon", "author");
À§ÀÇ 2°¡Áö¸¦ Á¶ÇÕÇϸé ÀÌ·±°Íµµ µÇ°ÚÁÒ.
@names = qw/lee park kim jung/;
# @names = ("lee","park","kim","jung") °ú °°½À´Ï´Ù
¹è¿ÀÇ ¿ø¼Ò´Â ¹Ýµå½Ã ½ºÄÉÀ϶óÀΰÍÀº ¾Æ´Õ´Ï´Ù. ¹è¿³»¿¡ ¹è¿À» ´ãÀ» ¼öµµ ÀÖ°í ¹è¿³»¿¡ ÇØ½¬(¾ÆÁ÷ ±¸°æÇغ¸Áø ¾Ê¾Ò½À´Ï´Ù)¸¦ ´ãÀ» ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ·± ¹æ½ÄÀ» ÅëÇØ¼ ÆÞ¿¡¼µµ º¹ÀâÇÑ µ¥ÀÌŸ ±¸Á¶¸¦ ¼³°èÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸ ±×°Ç ³ªÁß¿¡ ´Ù·ê ±âȸ°¡ ÀÖÀ» °Ì´Ï´Ù. ¿ì¼± °£´ÜÇÑ °Í¸¸ ±¸°æÇغ¸ÁÒ.
@small = (2..5);
@large = ("a", @small, "z");
# @large = ("a",2,3,4,5,"z") ¿Í °°½À´Ï´Ù
±×¸®°í ¸®½ºÆ®ÀÇ °¢ ¿ø¼Ò¸¦ Á¢±ÙÇϴµ¥ ÀÖ¾î ²À ¹è¿º¯¼ö¿¡ ÇÒ´çµÉ Çʿ䵵 ¾ø½À´Ï´Ù.
$a = ('a'..'z')[3];
print $a; # d °¡ Ãâ·ÂµË´Ï´Ù
ÀÌ·±°Ç ¾î¶»½À´Ï±î. localtime ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ ¿À´Ã³¯Â¥¸¦ ³âµµ, ¿ù, ÀϺ°·Î º¯¼ö¿¡ ´ã´Â ÄÚµå ÀÔ´Ï´Ù.
($day,$month,$year) = (localtime)[3,4,5];
´ë°ýÈ£ ¾ÈÀÇ ÄÞ¸¶¿¡ ÁÖÀÇÇϼ¼¿ä.
¹è¿°ú °ü·ÃµÈ ¿¬»êÀÚ Áß¿¡ ¸Å¿ì ÀÚÁÖ ¾²ÀÌ´Â °ÍÀ¸·Î 4°¡Áö°¡ ÀÖ½À´Ï´Ù. ÀÌ ÇÔ¼ö ¸ðµÎ ¹è¿³»ÀÇ ¾î¶² ¿ø¼Ò¸¦ »Ì¾Æ³»°Å³ª ¹è¿¿¡ »õ·Î¿î ¿ø¼Ò¸¦ Áý¾î³Ö´Â ±â´ÉÀ» ÇÕ´Ï´Ù.
¸ÕÀú ¹è¿ÀÇ ¿À¸¥ÂÊ¿¡¼ ¹º°¡¸¦ Áý¾î³ÖÀ»¶§´Â push¸¦ ¾¹´Ï´Ù. »¬¶§´Â popÀ» ¾¹´Ï´Ù. (push-pop)
@test = (1..10);
$last = pop(@test);
$last¶ó´Â ½ºÄÉÀÏ¶ó º¯¼ö¿¡´Â 10ÀÌ ´ã±é´Ï´Ù. ¹è¿ÀÇ °¡Àå ¿À¸¥ÂÊ ¿ø¼Ò(¸¶Áö¸·¿ø¼Ò)¸¦ ƨ°Ü³»´Â °Í (pop) ÀÔ´Ï´Ù. ±×·¯¸é ¸¶Áö¸· ¿ø¼Ò¸¦ ƨ°Ü³½ µÚ¿¡ ¹è¿Àº ¾î¶»°Ô µÉ±î¿ä. ´ç¿¬È÷ ¿ø¼Ò Çϳª°¡ ÁÙ¾îµì´Ï´Ù. À§ÀÇ ¿¹¿¡¼´Â $last¿¡´Â 10 ÀÌ ´ã±â°í, @test´Â (1..9) °¡ µÇ´Â °ÅÁÒ.
¹Ý´ë·Î ¿À¸¥Âʳ¡¿¡ ¹º°¡¸¦ ¹Ð¾î³ÖÀ¸·Á¸é push ¸¦ ¾¹´Ï´Ù. ±¸¹®ÀÇ ÇüÅ¿¡ ÁÖÀÇÇϼ¼¿ä.
push(@test,100); # @test ´Â (1..9,100) ÀÌ µË´Ï´Ù
¹è¿¿¡ ¹è¿À» ¹Ð¾î³ÖÀ» ¼öµµ ÀÖ½À´Ï´Ù.
@small = ('a'..'c');
@large = ('o'..'z');
push (@large, @small);
¾î¶»°Ô µÉÁö´Â ÁüÀÛÀÌ µÇ½ÃÁÒ? @largeÀÇ ¿À¸¥ÂÊ¿¡ @smallÀ» ¹Ð¾î³Ö½À´Ï´Ù.
À̹ø¿¡´Â ¿ÞÂÊ¿¡¼ Áý¾î³Ö°í »©´Â °ÍÀ» ÇØº¸ÁÒ. ¿ÞÂÊ¿¡¼ »©³»´Â °ÍÀº shift ÀÔ´Ï´Ù. ¿ÞÂÊ¿¡¼ Áý¾î³Ö´Â °ÍÀº unshift ÀÔ´Ï´Ù. (shift-unshift)
@shifting = ('a'..'z');
$first = shift(@shifting);
$first ½ºÄÉÀÏ¶ó º¯¼ö¿¡´Â 'a'°¡ ´ã±â°Ô µÇ°í @shifting ¹è¿Àº ('b'..'z') ·Î ¹Ù²ò´Ï´Ù.unshift´Â push¿Í ºñ½ÁÇÕ´Ï´Ù.
unshift(@shifting, "zzz");
¹Ð¾î³Ö°í »©´Â °ÍÀº °¨ ÀâÀ¸¼ÌÁÒ?
´ÙÀ½À¸·Î ¹è¿À» ¸ù¶¥ ¿ª¼øÀ¸·Î ¹Ù²Ù´Â ¿¬»êÀÚ·Î reverse°¡ ÀÖ½À´Ï´Ù.
@abc = (1..5);
@abc = reverse @abc;
@ahehheh ¿¡´Â (5,4,3,2,1) ÀÌ µé¾îÀÖ°Ô µË´Ï´Ù.
¸¶Áö¸·À¸·Î ¹è¿À» Á¤µ·ÇØÁÖ´Â sort ¿¬»êÀÚ.
@os = qw/ prodos dos cp-m msdos macos windos os2 nextstep bsd systemv linux osx expee/;
@os = sort @os;
print "@os";
¼ýÀÚ´Â ÀÛÀº°Í¿¡¼ Å«°Í¼ø¼·Î ¹®ÀÚ´Â ¾Æ½ºÅ°Äڵ尡 ÀÛÀº°Í¿¡¼ Å«°Í ¼ø¼·Î Á¤·ÄÇØÁÝ´Ï´Ù. À§ÀÇ °æ¿ì´Â abc ¼ø¼´ë·Î bsd cp-m dos .. °¡ Ãâ·ÂµË´Ï´Ù. ¿©±â¼ ÀÚÁÖ ½Ç¼öÇÏ´Â ºÎºÐÀÌ Çϳª ÀÖ½À´Ï´Ù. À§ÀÇ µÎ ¹øÂ° ÁÙó·³ @os = sort @os; ¶ó°í ÇÏÁö ¾Ê°í ±×³É sort @os; ¶ó°í¸¸ Çϸé @os ¹è¿Àº Á¤·ÄÀÌ µÇÁö ¾Ê½À´Ï´Ù. ÁÖÀÇÇϼ¼¿ä. ÀÚÁÖ Æ²¸®´Â ºÎºÐÀÔ´Ï´Ù.
Âü°í·Î print @array;´Â °¢ ¿ø¼Ò¸¦ µû´Úµû´Ú ºÙ¿©¼ Âß Ãâ·ÂÇØÁÖÁö¸¸ ¹è¿¸íÀ» Å« µû¿ÈÇ¥·Î ¹À¸¸é °¢ ¿ø¼Ò »çÀÌ¿¡ ½ºÆäÀ̽º ÇÑ ÄÀ» ³Ö¾î¼ Ãâ·ÂÇÏ°Ô µË´Ï´Ù.
½ºÄÉÀ϶ó¿Í °ü°èµÇ´Â Á¶Àý¹®À¸·Î if , while À» ¾Ë¾ÆºÃ¾ú½À´Ï´Ù. À̹ø¿£ ¹è¿ ÀÔ´Ï´Ù. ¹è¿°ú ÇÔ²² ÀÚÁÖ ¾²ÀÌ´Â °ÍÀº foreach ÀÔ´Ï´Ù. À̰ÍÀº list ¿ø¼Ò Çϳª Çϳª¸¦ °¡Á®¿É´Ï´Ù. ¿¹¸¦µé¸é,
foreach $number (1..10) {
print $number , "\n"; # Âü°í : print "$number\n"¿Í ¶È°°½À´Ï´Ù
}
À§ ÄÚµå´Â 1 ºÎÅÍ 10 ±îÁö Âß Ãâ·ÂÇØ ÁÝ´Ï´Ù. foreach ´ÙÀ½¿¡ °¢ ¿ø¼Ò¸¦ ´ãÀ» ½ºÄÉÀÏ¶ó º¯¼ö¸¦ ½áÁÖ°í ¹è¿¸íÀ̳ª ¸®½ºÆ®¸¦ ½áÁÖ¸é µË´Ï´Ù. ¸î °³ ´õ º¼±î¿ä?
foreach $name (qw/lee park kim jung/) { }
foreach $file (@files) { }
¿¹¸¦µé¾î À̸§ÀÌ ´ã±ä ¸®½ºÆ®¿¡¼ °¢°¢ÀÇ À̸§ µÚ¿¡ "¾¾" ¸¦ ºÙ¿©ÁÖ´Â ÄÚµå´Â ÀÌ·¸°Ô µÉ °Ì´Ï´Ù.
@president = ("À̼þ¸¸","À±¹ö¼±,"Àå¹§","¹ÚÁ¤È÷","ÃÖ±¸ÇÏ","Á¸µÎÇÑ","³ÊÅ¿ì","±â’D»ï","±èµ¥Áß");
foreach $name (@president) {
$name .= "¾¾";
}
print "@president";
$name Àº @president ¶ó´Â ¹è¿ÀÇ °¢ ¿ø¼Ò¸¦ °¡¸£Å°°Ô µÇ¹Ç·Î À§ÀÇ ÄÚµå´Â $president[0] .= "¾¾" ,$president[1] .= "¾¾" , . . . ÇÏ°í ¶È°°Àº °ÍÀÔ´Ï´Ù.
¿©±â¼ Áß¿äÇÑ Á¡ Çϳª´Â¿ä. foreach¸¦ »ç¿ëÇÒ ¶§ ¹è¿ ¿ø¼Ò Çϳª Çϳª°¡ ´ã±â´Â º¯¼ö (À§¿¡¼ÀÇ $name °°Àº) ´Â ÀÏÁ¾ÀÇ alias¶ó´Â °ÍÀÔ´Ï´Ù. Áï $name¿¡ ¾î¶² ¼öÁ¤À» °¡ÇÏ°Ô µÇ¸é $nameÀÌ °¡¸£Å°´Â ¹Ù·Î ±× ¿ø¼Ò¸¦ Á÷Á¢ º¯°æµÈ´Ù´Â ¾ê±âÁÒ. À§ÀÇ ¿¹¿¡¼µµ ±×·¸ÁÒ? $name¿¡ "¾¾" ÀÚ¸¦ ºÙÀ̸é @president ¿ø¼Ò Çϳª Çϳª¸¦ Á÷Á¢ º¯°æÇÏ´Â °ÍÀÌ µË´Ï´Ù.
À̰ÍÀÌ ¶æÇÏ´Â ¹Ù´Â ÀÌ·¸½À´Ï´Ù. ¹è¿ ¿ø¼Ò¸¦ Á÷Á¢ º¯°æÇÒ Çʿ䰡 ÀÖ´Â °æ¿ì À§Ã³·³ foreach ´ÙÀ½¿¡ ³ª¿À´Â º¯¼ö À̸§À» ¹Ù·Î »ç¿ëÇØµµ µË´Ï´Ù¸¸ ¸¸¾à ¹è¿Àº ±×´ë·Î µÐ ä·Î ±× ¹è¿ ¿ø¼Ò¿¡ ¾î¶² ÀÛ¾÷À» ÇØ¼ ´Ù¸¥ °á°ú¹°À» ¸¸µé·Á´Â °æ¿ì¿£ ¹Ýµå½Ã ¶Ç´Ù¸¥ º¯¼ö Çϳª¸¦ ´õ »ç¿ëÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. Áß¿äÇÑ À̾߱â ÀÔ´Ï´Ù
ÀÌÁ¦ Àç¹Õ´Â°ÍÀ» Çϳª ÇØº¾½Ã´Ù. ù½Ã°£¿¡ ¸»¾¸µå¸° ÆÞÀÇ Æ¯Â¡ Áß¿¡ Ưº°È÷ ¸í½ÃÇÏÁö ¾ÊÀ¸¸é ´ã±â°Ô µÇ´Â implicit ÇÑ °ÍÀÌ ÀÖ´Ù°í Çß½À´Ï´Ù. ÆÞ¿¡¼ Ưº°È÷ ¸í½ÃÇÏÁö ¾ÊÀ¸¸é ´ã±â´Â º¯¼ö·Î $_°¡ ÀÖ½À´Ï´Ù. ¸Å¿ì Áß¿äÇÑ °ÍÀÔ´Ï´Ù.
´ÙÀ½ÀÇ foreach ±¸¹®À» º¸¼¼¿ä.
foreach (1..10) {
print "$_\n";
}
ÀÌ ÄÚµå´Â 1ºÎÅÍ 10±îÁö ÁÙÀ» ¹Ù²ãÁÖ¸é¼ Ãâ·ÂÇØÁÖ´Â ÄÚµå ÀÔ´Ï´Ù. ´«¿©°Ü º¸½Ç Á¡Àº foreach ´ÙÀ½¿¡ Ưº°È÷ ½ºÄÉÀÏ¶ó º¯¼ö¸¦ ½áÁÖÁö ¾Ê¾Ò´Ù´Â Á¡ÀÌÁÒ. ÀÌ·¸°Ô ½ºÄÉÀÏ¶ó º¯¼ö¸¦ »ý·«ÇÏ°Ô µÇ¸é ÆÞ¿¡¼´Â default variable·Î ¾²°í ÀÖ´Â $_ ¸¦ »ç¿ëÇÏ°Ô µË´Ï´Ù. ±×·¡¼ print ±¸¹®¿¡¼´Â $_ ¸¦ ÀÌ¿ëÇØ¼ Ãâ·ÂÇÏ´Â °ÍÀ̱¸¿ä. ÀÌ·¸°Ô »ý·«Çعö·Áµµ ´ã±æ °÷ÀÌ ÀÖ´Ù´Â Á¡¶§¹®¿¡ ÆÞÀº ¸Å¿ì Ãà¾àµÈ ÇüÅ·ΠÄÚµùÀÌ °¡´ÉÇÕ´Ï´Ù. ¿ì¼± ¸ÀºÆ±â·Î ¸»¾¸µå¸°°ÍÀÔ´Ï´Ù. ¾ÕÀ¸·Î À¯»çÇÑ °ÍÀÌ ¿©·¯Â÷·Ê ¾ð±ÞµÉ °Ì´Ï´Ù. $_´Â ²À ¿Ü¿öµÎ¼¼¿ä. ¸í½ÃÇÏÁö ¾ÊÀ¸¸é ÀÚµ¿À¸·Î »ç¿ëµÇ´Â ½ºÄÉÀÏ¶ó º¯¼ö ÀÔ´Ï´Ù.
¶Ç ÇѰ¡Áö Áß¿äÇÑ °ÍÀº ´ÙÀ½°ú °°Àº ÆÞ ÄÚµù ½ºÅ¸ÀÏ¿¡ »¡¸® Àͼ÷ÇØÁö´Â°Ô ÁÁ´Ù´Â °ÍÀÔ´Ï´Ù. º¸½ÃÁÒ.½ºÄÉÀ϶󺯼ö
print foreach (1..10);
À§ ÄÚµå´Â ¾ð¶æ º¸¾Æ¼´Â ²À ¿¡·¯°¡ ³¯°Í °°Àº ÀÌ»óÇÑ ÇüÅÂÀÔ´Ï´Ù¸¸ ¹Ù·Î À§¿Í °°Àº ½ºÅ¸ÀÏÀÌ ÆÞ¸¸ÀÇ µ¶Æ¯Çϸ鼵µ ¸Å·ÂÀûÀÎ ½ºÅ¸ÀÏ ÀÔ´Ï´Ù. À§ ÄÚµå´Â 1¿¡¼ 10±îÁö Âß Ãâ·ÂÀ» ÇØÁÖ´Â ÄÚµåÀε¥ °á±¹ ´ÙÀ½°ú °°Àº ÄÚµåÀÓÀ» ¾Æ½Ç ¼ö ÀÖÀ» °Ì´Ï´Ù.½ºÄÉÀ϶󺯼ö
foreach (1..10) { print }
foreach ´ÙÀ½¿¡ ½ºÄÉÀÏ¶ó º¯¼ö¸¦ »ý·«Ç߱⠶§¹®¿¡ ÆÞÀÇ µðÆúÆ® º¯¼öÀÎ $_¿¡ 1 ºÎÅÍ 10 ±îÁö ¼øÂ÷ÀûÀ¸·Î ´ã±â°Ô µÇ°í, print ±¸¹®¿ª½Ã µû·Î º¯¼ö¸¦ ¸í½ÃÇÏÁö ¾Ê¾ÒÀ¸¹Ç·Î ÆÞÀÇ µðÆúÆ® º¯¼ö $_¿¡ ´ã±ä °ªÀ» Ãâ·ÂÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ ºÎºÐ±îÁö¸¸ ÇØµµ ÆÞÀÇ °£¼ÒÇϸ鼵µ µ¶Æ¯ÇÑ ½ºÅ¸ÀÏÀÌ ÀÌä·Ó½À´Ï´Ù¸¸Àº ÆÞÀº ¿©±â¼ ÇÑ ¹ß ´õ ³ª¾Æ°¡¼ ¸¶Ä¡ ÀÚ¿¬¾îó·³ ¾î¼øÀ» ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. ±× °á°ú°¡ ¹Ù·Î,
print foreach (1..10);
ÀÌÁÒ. { }°¡ ¾ø°í, ¾Õ¿¡¼ºÎÅÍ µÚ·Î ¸¶Ä¡ ¿µ¾î¹®Àå ÀеíÀÌ Âß ÄÚµùÀ» ÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù. ÀÌ·± ½ºÅ¸ÀÏÀº ¾ÕÀ¸·Î ¿©·¯°¡Áö Á¶Àý¹®¿¡¼ °è¼Ó ³ª¿À°Ô µÇ¹Ç·Î »¡¸® Àͼ÷ÇØÁö½Ã´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î °°Àº ±â´ÉÀ» ÇÏ´Â °æ¿ì { }°¡ ¾ø°í ÄÚµå ±æÀ̰¡ ªÀ»¼ö·Ï ½ÇÇà¼Óµµµµ ºü¸¨´Ï´Ù. µû¶ó¼ °¡´ÉÇϸé À§¿Í °°ÀÌ ÄÚµùÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. Âü°í·Î { }°¡ ÀÖ´Â ±¸¹®À» º¹¹®À̶óÇÏ°í ¾ø´Â ±¸¹®À» ´Ü¹®À̶ó ÇÕ´Ï´Ù. °¡±ÞÀûÀÌ¸é º¹¹®À» ÇÇÇÏ°í ´Ü¹®À¸·Î ÄÚµùÇÏ´Â°Ô ÁÁ½À´Ï´Ù. ÀÚ¼¼È÷ ¾Ë¾Æº¸½Ã·Á¸é ÆÞÀÇ ±¸¹®°ú ·çÇÁ À» Âü°íÇϼ¼¿ä.
¸¶Áö¸·À¸·Î ¾öû³ª°Ô Áß¿äÇÑ ³»¿ë ÀÔ´Ï´Ù. Áß¿äÇÏÁö ¾ÊÀº °ÍÀÌ ¾ø±º¿ä. ^_^
ÆÞÀº ÀÚ¿¬¾îó·³ context ÀÇÁ¸ÀûÀÎ ¾ð¾î¶ó°í Çß½À´Ï´Ù. ¶È°°Àº º¯¼ö¶óµµ ÁÖº¯ ¹®¸Æ¿¡ µû¶ó ÀüÇô ´Ù¸£°Ô Ãë±ÞµÉ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù. ¶ó¸¶ºÏ¿¡¼´Â À̺κÐÀÌ Ã¥ Àüü¸¦ ÅëÆ²¾î °¡Àå Áß¿äÇÏ´Ù°í±îÁö ¾ê±âÇØ³ù±º¿ä.
°£´ÜÇÏ°Ô ÀÌ·±°ÍÀÔ´Ï´Ù. ½ºÄÉÀ϶ó·Î Ãë±ÞÇÒ ¹®¸ÆÀÌ¸é ½ºÄÉÀ϶ó·Î Ãë±ÞÇϰí, ¸®½ºÆ®·Î Ãë±ÞÇÒ ºÐÀ§±â-_-¸é ¸®½ºÆ®·Î Ãë±ÞÇÑ´Ù ÀÔ´Ï´Ù. ¿¹¸¦ º¸¸é ½±½À´Ï´Ù. (¶ó¸¶ºÏ¿¡ ÀÖ´Â°É ¿Å°Üº¸ÁÒ)
5 + something # somthing Àº ½ºÄÉÀ϶ó·Î Ãë±ÞµË´Ï´Ù. + °¡ ½ºÄÉÀÏ¶ó ¿¬»êÀڴϱî
sort something # something Àº ¸®½ºÆ®·Î Ãë±ÞµË´Ï´Ù. sort °¡ ¸®½ºÆ® ¿¬»êÀڴϱî
±×·±µ¥ ¾î¶² ¿¬»êÀÚÀÇ °æ¿ì ¾çÂÊ ÄÁÅØ½ºÆ® ¸ðµÎ¿¡¼ ¾²ÀÌ¸é¼ °¢±â ´Ù¸¥ °á°ú¸¦ °¡Á®¿À±âµµ ÇÕ´Ï´Ù.reverse °¡ ´ëÇ¥ÀûÀÎ ¿¹ÀÔ´Ï´Ù.
@congtext = qw/aa bb cc dd ee/;
@leest = reverse @congtext; # @congtext ´Â ¸®½ºÆ®·Î ´Ù·ïÁý´Ï´Ù.
# Áï @leest ¿¡´Â ("ee","dd","cc","bb","aa") °¡ µé¾î°¡°Ô µÇÁÒ
$skala = reverse @congtext; # @congtext ´Â ½ºÄÉÀ϶ó·Î Ãë±ÞµË´Ï´Ù
# $skala ¿¡´Â eeddccbbaa °¡ µé¾î°¡°Ô µË´Ï´Ù
±×·¯¸é ¾î¶²°Ô ½ºÄÉÀ϶ó ÄÁÅØ½ºÆ®°í ¾î¶²°Ô ¸®½ºÆ® ÄÁÅØ½ºÆ®³Ä. ´ë·« ÀÌ·¸½À´Ï´Ù. ¾Æ¸¶ ¿¹»óÇÑ´ë·Î Àϰ̴ϴÙ.
| ½ºÄÉÀ϶ó ÄÁÅØ½ºÆ® | ¸®½ºÆ® ÄÁÅØ½ºÆ® |
| $s = something $s[3] = something 123+something if(something) { .. } while(something) { .. } |
@a = something ($a,$b) = something ($a) = something foreach $a (something) { .. } sort something push @aa something |
ÁÖÀÇÇÏ½Ç °ÍÀº ($a,$b) = something ÀÔ´Ï´Ù. ÀÌó·³ ¿ÞÆí¿¡ ¸®½ºÆ®¸¦ ¸¸µé¾î ³õÀ¸¸é ¿À¸¥ÂÊ °ÍÀº ¸®½ºÆ®·Î ´Ù·ïÁö°Ô µË´Ï´Ù. ƯÈ÷, ¸®½ºÆ® ÄÁÅØ½ºÆ® Áß À§¿¡¼ ¼¼¹øÂ° °Í, ½ºÄÉÀÏ¶ó º¯¼ö ÇÑ °³ÀÏÁö¶óµµ °ýÈ£·Î ¹´Â ¼ø°£ ¸®½ºÆ® ÄÁÅØ½ºÆ®°¡ µÈ´Ù´Â Á¡Àº Àß ±â¾ïÇØµÎ¼¼¿ä. °ýÈ£·Î ¹´Â °ÍÀº °ð ¸®½ºÆ® ÄÁÅØ½ºÆ®·Î ¾²°Ú´Ù´Â Àǹ̸¦ °®½À´Ï´Ù.
Çϳª ´õ ¿¹¸¦ »ìÆìº¸°í ³Ñ¾î°©½Ã´Ù.
($x) = (4, 5, 6); # ¸®½ºÆ® ¹®¸ÆÀ̹ǷΠ$x ´Â 4 °¡ µË´Ï´Ù
$x = (4, 5, 6); # ½ºÄÉÀÏ¶ó ¹®¸ÆÀ̹ǷΠ$x ´Â 6 ÀÌ µË´Ï´Ù
ÀÌÁ¦ ÆÞ »ç¿ëÀÚ ÀԷ ó¸®¿¡¼ °øºÎÇÑ ³»¿ëÀÌ À̹ø ½Ã°£¿¡ ¹è¿î ÄÁÅØ½ºÆ®¿Í ¾î¶»°Ô ¸Â¹°·Á µ¹¾Æ°¡´ÂÁö º¸½ÃÁÒ. ±× ±Û¿¡¼ <STDIN>Àº Ç¥ÁØÀԷ¿¡ ÀÖ´Â °ÍÀ» 'ÇÑ ÁÙ' Àоî¿À´Â ±â´ÉÀ» ÇÑ´Ù¶ó°í Çß¾ú½À´Ï´Ù.±×·±µ¥ ¸¸¾à <STDIN>À» ¸®½ºÆ® ¹®¸Æ¿¡¼ »ç¿ëÇÑ´Ù¸é ¾î¶»°Ô µÉ±î¿ä?
¿¹ÃøÇϽŴë·Î ¸®½ºÆ® ¹®¸Æ¿¡¼´Â Ç¥ÁØÀԷ¿¡ ÀÖ´Â ¸ðµç °ÍÀ» (ÇÑ ÁÙÀÌ ¾Æ´Ï¶ó) ´Ù ÀоîµéÀÌ°Ô µË´Ï´Ù.
chomp(@lines = <STDIN>);
@lines ¿¡´Â ÇÑ ÁÙÀÌ ¾Æ´Ï¶ó ¸ðµç ÁÙÀÌ ´Ù ´ã±â´Â °ÍÀÔ´Ï´Ù.
