Perl(配列操作)

Perl配列操作です。

まずは配列の初期化。空の()を代入すればよいです。

takk@deb9:~/pl$ perl -e '@a=1..1;@a=();print "@a\n"';

takk@deb9:~/pl$

文字列の配列はクォートで区切る方法と、

takk@deb9:~/pl$ perl -e '@a=("aa","bb","cc");print "@a\n"';
aa bb cc
takk@deb9:~/pl$ 

qw演算子を使ってスペース区切りにする方法があります。

takk@deb9:~/pl$ perl -e '@a=qw(aa bb cc);print "@a\n"';
aa bb cc
takk@deb9:~/pl$

次は要素の取出しです。

添え字でインデックスを指定して要素を取得することができますが、配列を操作して要素を取り出すことができます。

popは配列の最後の要素を取り出します。

takk@deb9:~/pl$ perl -e '@a=1..5;$b=pop @a;print "$b\n@a\n"';
5
1 2 3 4
takk@deb9:~/pl$

shiftは配列の先頭の要素を取り出します。

takk@deb9:~/pl$ perl -e '@a=1..5;$b=shift @a;print "$b\n@a\n"';
1
2 3 4 5
takk@deb9:~/pl$

では要素の追加です。

配列の最後に要素を追加するには、pushを使います。

takk@deb9:~/pl$ perl -e '@a=1..5;push @a,10;print "@a\n"';
1 2 3 4 5 10
takk@deb9:~/pl$

配列の先頭に追加するにはunshiftを使います。

takk@deb9:~/pl$ perl -e '@a=1..5;unshift @a,10;print "@a\n"';
10 1 2 3 4 5
takk@deb9:~/pl$

アセンブリ言語の経験があると、pushが追加でpop取出しと想像つきますが、
shiftとunshiftがどちらがどちらか毎度迷います。
私は、単語の文字数が多い方が追加と覚えてます。
push 追加
pop 取出し
unshift 追加
shift 取出し

要素の途中から一気に取り出すにはspliceを使います。spliceの第二引数が0はじまりのインデックスになります。

takk@deb9:~/pl$ perl -e '@a=10..15;@b=splice @a,3;print "@a\n@b\n"';
10 11 12
13 14 15
takk@deb9:~/pl$

コメント

タイトルとURLをコピーしました