º¸´Ù °ü½ÉÀÌ °¡´Â º¯¼ö´Â À̸§À» °®´Â ¸®½ºÆ®(Named List)ÀÎ ¹è¿(Array)ÀÌ´Ù. ¹è¿ º¯¼ö´Â º¯¼ö¸íÀÌ @·Î ½ÃÀ۵ȴٴ Á¡¸¸ Á¦¿ÜÇÏ°í´Â ½ºÄ®¶ó º¯¼ö¿Í µ¿ÀÏÇÑ Çü½ÄÀ» °®´Â´Ù.
¿ä¾à
- @(at ±âÈ£)
- Àüü ¹è¿À̳ª ¹è¿ÀÇ ÀϺκÐ([ ]¿Í ÇÔ²² »ç¿ëÇÒ ¶§)À» ÂüÁ¶ÇÑ´Ù.
- $(dollar ±âÈ£)
- [ ]¿Í ÇÔ²² »ç¿ëÇÔÀ¸·Î¼ ¹è¿ÀÇ ÇÑ ¿ä¼Ò¸¦ ÂüÁ¶ÇÑ´Ù.
¼³¸í
@food = ("»ç°ú", "¹è", "Àå¾î");
@music = ("ÇǸ®", "Åü¼Ò");
print "@food\n";
print "@music\n";
À§ÀÇ ¹®ÀåÀº ¼¼°³ÀÇ ¿ä¼Ò¸¦ ¹è¿, @food¿¡ ÇÒ´çÇÏ°í µÎ°³ÀÇ ¿ä¼Ò¸¦ ¹è¿, @music¿¡ ÇÒ´çÇÏ´Â ¹®ÀåÀÌ´Ù.
¹è¿Àº 0À¸·Î ½ÃÀÛÇÏ´Â ¹è¿ ÷ÀÚ¿¡ÀÇÇØ ÂüÁ¶ÇÒ ¼ö ÀÖÀ¸¸ç, ´ë°ýÈ£°¡ ¹è¿Ã·ÀÚ¸¦ ÁöÁ¤Çϴµ¥ »ç¿ëµÈ´Ù.
print "$food[2]\n";
À§ÀÇ Ç¥Çö½ÄÀº Àå¾îÀ» ¸®ÅÏÇÑ´Ù. Àå¾î´Â ½ºÄ®¶ó À̹ǷΠ@´Â $·Î º¯°æµÈ´Ù.
¹è¿ÇÒ´ç
ÆÞ¿¡¼´Â °°Àº Ç¥Çö½ÄÀÌ¶óµµ È¯°æ(½ºÄ®¶ó, ¹è¿)¿¡µû¶ó ´Ù¸¥ °á°ú¸¦ ¸¸µç´Ù. ¾Æ·¡¿¡¼ ù¹ø° ÇÒ´ç¹®Àº µÎ¹ø° ÇÒ´ç¹®°ú µ¿ÀÏÇÑ ¹®ÀåÀÌ µÈ´Ù.
@moremusic = ("²¤²¤ÀÌ", @music, "¡");
print "@moremusic\n";
@moremusic = ("²¤²¤ÀÌ", "ÇǸ®", "Åü¼Ò", "¡");
print "@moremusic\n";
¹è¿Ãß°¡
À§ ¹®ÀåÀº ¹è¿¿¡ ¿ä¼Ò¸¦ Ãß°¡ÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÑ´Ù. ¹è¿¿¡ ¿ä¼Ò¸¦ Ãß°¡ÇÏ´Â º¸´Ù »ê¶æÇÑ ¹æ¹ýÀº ´ÙÀ½ ¹®ÀåÀ» »ç¿ëÇÏ´Â °ÍÀÌ´Ù.
push(@food, "²Ã¶Ñ±â");
ÀÌ ¹®ÀåÀº ²Ã¶Ñ±â¸¦ ¹è¿ @foodÀÇ ³¡¿¡ Ãß°¡ÇÑ´Ù. µÎ°³ ÀÌ»óÀÇ Ç׸ñÀ» ÇϳªÀÇ ¹è¿¿¡ Ãß°¡ÇϱâÀ§ÇØ ´ÙÀ½ Çü½ÄÁß Çϳª¸¦ »ç¿ëÇÏ¸é µÈ´Ù:
push(@food, "²Ã¶Ñ±â", "¾ÞµÎ");
print "@food\n";
push(@food, ("²Ã¶Ñ±â", "¾ÞµÎ"));
print "@food\n";
push(@food, @morefood);
print "@food\n";
push ÇÔ¼ö´Â »õ·Î¿î ¸ñ·Ï(¹è¿)ÀÇ Å©±â¸¦ ¸®ÅÏÇÑ´Ù.
¹è¿Á¦°Å
¸ñ·ÏÀ¸·ÎºÎÅÍ ¸¶Áö¸· Ç׸ñÀ» Á¦°ÅÇÏ°í Á¦°ÅµÈ Ç׸ñÀ» ¸®ÅϹޱâÀ§ÇØ pop ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù. @food´ëÇØ pop ¿¬»êÀ» ¼öÇàÇϸé pop ÇÔ¼ö´Â Àå¾î¸¦ ¸®ÅÏÇϸç, @food´Â µÎ°³ÀÇ ¿ä¼Ò¸¦ °®°ÔµÈ´Ù:
$grub = pop(@food); # $grub = "Àå¾î"
print "$grub, @food\n";
¹è¿À» ½ºÄ®¶ó º¯¼ö¿¡ ÇÒ´çÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù. ¿ª½Ã »ç¿ëµÇ´Â ȯ°æÀÌ Áß¿äÇÏ´Ù.
$s = @food;
print "$s\n";
Àº @foodÀÇ Å©±â¸¦ ÇÒ´çÇÏÁö¸¸
$f = "@food";
print "$f\n";
Àº °¢ ¿ä¼Ò »çÀ̸¦ °ø¹éÀ¸·Î ä¿î ¹®ÀÚ¿À» ¸®ÅÏÇÑ´Ù. ÀÌ °ø¹éÀº Ư¼ö º¯¼ö $"ÀÇ °ªÀ» º¯°æÇÔÀ¸·Î¼ ÀÓÀÇÀÇ ´Ù¸¥ ¹®ÀÚ¿·Î ´ëÄ¡ÇÒ ¼ö ÀÖ´Ù. ÀÌ º¯¼ö´Â ÆÞÀÇ ÁÖ¿ä Ư¼ö º¯¼öÁßÀÇ ÇϳªÀ̸ç, °¡Àå ÀÌ»óÇÑ À̸§À» °¡Áö°í ÀÖ´Ù.
½ºÄ®¶ó º¯¼öÀÇ ´ÙÁß ÇÒ´ç
¹è¿Àº ½ºÄ®¶ó º¯¼ö¸¦ ´ÙÁß ÇÒ´çÇϴµ¥¿¡ »ç¿ëµÉ ¼öµµ ÀÖ´Ù:
$c = 'kiwi';
$d = 'orange';
($a, $b) = ($c, $d); # $a=$c; $b=$d;¿Í µ¿ÀÏ
print "$a, $b\n";
($a, $b) = @food; # $a¿Í $b¿¡ @foodÀÇ Ã³À½ µÎ Ç׸ñÀ» ÇÒ´ç
print "$a, $b\n";
($a, @somefood) = @food; # $a´Â @foodÀÇ Ã¹¹ø° Ç׸ñ
# @somefood´Â ³ª¸ÓÁö ¸ñ·Ï
print "$a, @somefood\n";
(@somefood, $a) = @food; # @somefood´Â @food
# $a´Â Á¤ÀǵÇÁö ¾ÊÀ½
print "@somefood, $a\n";
¸¶Áö¸· ÇÒ´ç¹®¿¡¼ ¹è¿ÀÇ Å©±â´Â ÀÚµ¿Á¶ÀýµÇ¸ç µû¶ó¼ @somefood´Â @food ¸¸ÇÑ Å©±â·Î Áõ°¡Çϱ⶧¹®¿¡ ¹ß»ýÇÑ´Ù. µû¶ó¼ À§¿Í°°Àº Çü½ÄÀº Àý´ë ÇÇÇØ¾ß ÇÑ´Ù.
¸¶Áö¸· ¹è¿Ã·ÀÚ
¸¶Áö¸·À¸·Î ¸ñ·ÏÀÇ ¸¶Áö¸· ¹è¿Ã·ÀÚ´Â ´ÙÀ½°ú ¹æ¹ýÀ» ÀÌ¿ëÇؼ ãÀ» ¼ö ÀÖ´Ù. ÀÌ ¸¶Áö¸· ¹è¿Ã·ÀÚ¸¦ ÀÌ¿ëÇÏ¸é ¹è¿ÀÇ Å©±â¸¦ ¾Ë ¼ö ÀÖÀ¸¸ç, ¹è¿¿¡ µ¥ÀÌÅ͸¦ Ãß°¡ »èÁ¦ÇÒ ¼ö ÀÖ´Ù.
print $#food + 1, "\n";
$#food = 2; # ¹è¿ÀÇ Å©±â¸¦ 3À¸·Î ¸¸µë.
# ¸¶Áö¸· ¹è¿ ¿ä¼Ò´Â »ç¶óÁü.
print "@food\n";
$food[$#food+1] = 'À°°èÀå'; # ¹è¿ÀÇ ³¡ºÎºÐ¿¡ 'À°°èÀå'À» Ãß°¡
¹è¿ÀÇ Ãâ·Â
ȯ°æÀÌ Áß¿äÇϹǷΠ´ÙÀ½ÀÇ ¸ðµç Äڵ尡 ¼·Î´Ù¸¥ °á°ú¸¦ ¸¸µå´Â °Í¿¡ ³î¶óÁö ¸»±â ¹Ù¶õ´Ù:
print @food; # ¹è¿ÀÚü
print "@food"; # Å« µû¿ÈÇ¥·Î Àοë
print @food.""; # ½ºÄ®¶ó º¯¼ö ȯ°æ
¹è¿°ü·Ã ÇÔ¼ö
push(@ARRAY,LIST)
@ARRAYÀÇ ³¡¿¡ LIST¸¦ Ãß°¡ÇÑ´Ù. @ARRAYÀÇ Å©±â¸¦ ¸®ÅÏÇÑ´Ù.
pop(@ARRAY)
@ARRAYÀÇ ¸¶Áö¸· ¿ä¼Ò¸¦ Á¦°ÅÇÏ°í Á¦°ÅÇÑ ¸¶Áö¸· ¿ä¼Ò¸¦ ¸®ÅÏÇÑ´Ù.
unshift(@ARRAY,LIST)
@ARRAYÀÇ ¾Õ ºÎºÐ¿¡ LIST¸¦ Ãß°¡ÇÑ´Ù. @ARRAYÀÇ Å©±â¸¦ ¸®ÅÏÇÑ´Ù.
shift(@ARRAY)
@ARRAYÀÇ Ã¹ ¹ø° ¿ä¼Ò¸¦ Á¦°ÅÇÏ°í Á¦°ÅÇÑ Ã¹ ¹ø° ¿ä¼Ò¸¦ ¸®ÅÏÇÑ´Ù.
scalar(@ARRAY)
@ARRAY ¿ä¼ÒÀÇ ¼ö¸¦ ¸®ÅÏÇÑ´Ù.
splice(LISTNAME, REMOVEOFFSET, REMOVENUMBER, ADDLIST)
REMOVEOFFSET ÁöÁ¤ÇÑ ¹è¿Ã·ÀÚºÎÅÍ REMOVENUMBER·Î ÁöÁ¤µÈ ¹è¿Ã·ÀÚ±îÁö¿¡ ADDLIST¸¦ ´õÇÑ´Ù.
REMOVENUMBER¸¦ 0À¸·Î ÁöÁ¤ÇÏ¸é ¹è¿À» Á¦°ÅÇÏÁö¾Ê°í »ðÀÔ¸¸ Çϸç, ADDLIST¸¦ Null ¸®½ºÆ®·Î ÁöÁ¤Çϸé ÁöÁ¤µÈ ¸¸Å ¹è¿¿ä¼Ò¸¦ »èÁ¦ÇÑ´Ù.
@nums1 = (1..5);
@nums2 = (1..5);
@nums3 = (1..5);
splice(@nums1, 3, 1, ('°³', '¼Ò'));
splice(@nums2, 3, 0, ('°³', '¼Ò'));
splice(@nums3, 3, 1, ());
$" = '::';
print "@nums1\n"; # °á°ú´Â 1::2::3::°³::¼Ò::5
print "@nums2\n"; # °á°ú´Â 1::2::3::°³::¼Ò::4::5
print "@nums3\n"; # °á°ú´Â 1::2::3::5