配列
(1,2,3) ("abc","123")
@name_list=("Aya","Yumi","Tae");$name_list[$i] で、配列の $i 番目の要素を表します。
@array[0,5]で配列の要素の0と5番目を指示する。 @array[0,5]=@array[5,0];で0番目と5番目の要素を交換できる。
shift(@array) #配列の先頭を取り出す(リストを左シフト) unshift(@array,値) #配列の先頭にデータを追加(リストを右シフト) push(@array) #配列の末尾に追加 $d=pop(@array) #配列の末尾を取り出しdに記録
#array { print "array element\n" ; @array=(1..7); print "@array[2]:"."@array"."\n\n"; print "push,pop\n"; push(@array,8); print "@array\n"; $d=pop(@array); print "$d:"."@array\n\n"; print "shift,unshift\n"; $d=shift(@array); print "$d:"."@array\n"; unshift(@array,0); print "@array\n"; }実行結果
C:\lang\perl\sample>perl array.pl array element 3:1 2 3 4 5 6 7 push,pop 1 2 3 4 5 6 7 8 8:1 2 3 4 5 6 7 shift,unshift 1:2 3 4 5 6 7 0 2 3 4 5 6 7
@member=("pen","eraser","tape","clip"); foreach $name (@member){ print "$name\n"; } my $i; for($i=0; $i < @member; $i++){ print "@member[$i]\n"; }実行結果
pen eraser tape clip pen eraser tape clip
%relation=("Itoh","Aya","Sawada","Yumi","Taguchi","Tae"); print "your name?\n"; $name=<stdin>; chop($name); print "name",$relation{$name}\n";
$<配列名>{<キー>}=<値>とします。配列名の先頭が$であり、キーの指定は { } であることに注意してください。同じキーが登録されている場合、古い値は上書きされます。
delete $<配列名>{<キー>}とします。キーの存在は、
exists($<配列名>{'<キー>'})で、論理値が返ります。すべてのキーのリストは、
keys(%<配列名>)で、取得できます。また、すべてのm組の値は
each(%<配列名>)で取得できます。
#hash table { %hash=('ito','mkt','kume','aya'); print "*extract*\n"; print "$hash{'kume'}\n"; #insert print "\n*insert*\n"; $hash{'makino'}='teru'; print "makino:$hash{'makino'}\n"; #update print "\n*update*\n"; $hash{'kume'}='masa'; print "kume:$hash{'kume'}\n"; #delete print "\n*delete*\n"; delete $hash{'kume'}; print "kume:$hash{'kume'}\n"; print "not exist \n" if (! exists($hash{'kume'})); #print all keys print "\nall keys\n"; foreach $key (keys(%hash)){ print " $key:" } #print all pairs print "\n\nall items\n"; print " $key -> $val\n" while (($key,$val)=each(%hash)); }
*extract* aya *insert* makino:teru *update* kume:masa *delete* kume: not exist all keys ito: makino: all items ito -> mkt makino -> teru