À̸íÇå °æ¿µ ½ºÄð
HOME | BUSINESS | TECH | CULTURE | FORUM | LIST | @emhdt  
[ÆÞ] ÆÞÀÇ ¹è¿­ (array) ¹× ¹è¿­ °ü·Ã ¿¬»êÀÚ, ±¸¹®
ÆÞ¿¡¼­ÀÇ ¹è¿­ (array, list)
À̸íÇå / 2002-7-21 /

¹è ¿­

ÇÑ °³Â¥¸® ¹«¾ùÀ» ´ã´Â º¯¼öÀÎ '½ºÄÉÀ϶ó' °¡ ÀÖ´Ù¸é ¿©·¯°³ÀÇ ¹«¾ùÀ» ´ã´Â º¯¼ö·Î ¹è¿­(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");idiom

À§ÀÇ 2°¡Áö¸¦ Á¶ÇÕÇϸé ÀÌ·±°Íµµ µÇ°ÚÁÒ.


@names = qw/lee park kim jung/; idiom
# @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];idiom

´ë°ýÈ£ ¾ÈÀÇ ÄÞ¸¶¿¡ ÁÖÀÇÇϼ¼¿ä.

¹è¿­°ú °ü·ÃµÈ ¿¬»êÀÚ

¹è¿­°ú °ü·ÃµÈ ¿¬»êÀÚ Áß¿¡ ¸Å¿ì ÀÚÁÖ ¾²ÀÌ´Â °ÍÀ¸·Î 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;´Â °¢ ¿ø¼Ò¸¦ µû´Úµû´Ú ºÙ¿©¼­ Âß Ãâ·ÂÇØÁÖÁö¸¸ ¹è¿­¸íÀ» Å« µû¿ÈÇ¥·Î ¹­À¸¸é °¢ ¿ø¼Ò »çÀÌ¿¡ ½ºÆäÀ̽º ÇÑ Ä­À» ³Ö¾î¼­ Ãâ·ÂÇÏ°Ô µË´Ï´Ù.

¹è¿­°ú °ü°èµÇ´Â Á¶Àý¹® : foreach

½ºÄÉÀ϶ó¿Í °ü°èµÇ´Â Á¶Àý¹®À¸·Î 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)

¸¶Áö¸·À¸·Î ¾öû³ª°Ô Áß¿äÇÑ ³»¿ë ÀÔ´Ï´Ù. Áß¿äÇÏÁö ¾ÊÀº °ÍÀÌ ¾ø±º¿ä. ^_^
ÆÞÀº ÀÚ¿¬¾îó·³ 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>);idiom

@lines ¿¡´Â ÇÑ ÁÙÀÌ ¾Æ´Ï¶ó ¸ðµç ÁÙÀÌ ´Ù ´ã±â´Â °ÍÀÔ´Ï´Ù.

Áö±Ý °è½Å °÷Àº: TECH > [ÆÞ] ÆÞÀÇ ¹è¿­ (array) ¹× ¹è¿­ °ü·Ã ¿¬»êÀÚ, ±¸¹®