配列
(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