« 「すぐわかるPerl」4.5 配列は勝手に伸び縮みする | トップページ | 4.7 スライスと範囲演算子「..」 »

2008年3月18日 (火)

「すぐわかるPerl」4.6 配列操作のいろいろ

■変数の交換
変数$aと$bの内容を交換する場合、↓のようにしなくても良い。

$a = $tmp;
$a = $b;
$tmp =$b;

というような中間変数を用いることなく可能。
具体的には

($a,$b)=($b,$a);

これで変数の交換が終了。
 これは強力に便利です。
・・・そうなのか?なんか利用法思いつかないや。

配列の要素の交換も同様に可能。@tallの1個目と2個目を変える場合には↓のように書く。

($tall[0],$tall[1]) = ($tall[1],$tall[0])

■最後の要素のアクセス
配列の最初の要素は「$配列名[0]」でアクセスする。
では、最後の要素の場合にはどうなるか?

「@配列名」という配列を作ると、「$#配列名」という最後の要素のインデックスが作成される。
最後の配列は

$配列名=[$#配列名]

となる。

スカラーコンテキスト(4.4章)の場合には、「@配列名」は配列の個数という数値になるので、「$#配列名」は「@配列名-1」に等しくなります。

「$#配列名」は「@配列名-1」

なお、配列のインデックスに府の数を指定すると、配列を後ろからアクセスします。

$配列名[-1]

と書いても、配列の最後の要素にアクセスできます。

$配列名[-2]

とすると、最後から2番目にアクセスできる。

#! c:\perl\bin\perl.exe
# arraytest -- 配列の実験

@move = ("hop","step","jump","slip","down");

print "$move\n";
print "$move[$#move]\n";
print "$move[@move - 1]\n";
print "$move[-1]\n";
print "$move[-2]\n";

というプログラムを実行すると、

C:\Documents and Settings\wada>"C:\Documents and Settings\sironekotoro\デスクトップ\perl
test.pl"

down
down
down
slip

となる。以下解説(オリジナル)。

print "$move\n"; #moveという変数の初期化?
print "$move[$#move]\n"; #配列名@moveの最後の配列
print "$move[@move - 1]\n"; #配列名@moveの最後の配列
print "$move[-1]\n"; #配列名@moveの最後の配列
print "$move[-2]\n"; #配列名@moveの最後から2番目の配列

■メモ
変数は$、scallar
配列は@、array
と覚えてみる。

|

« 「すぐわかるPerl」4.5 配列は勝手に伸び縮みする | トップページ | 4.7 スライスと範囲演算子「..」 »

Perl」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/214806/40494621

この記事へのトラックバック一覧です: 「すぐわかるPerl」4.6 配列操作のいろいろ:

« 「すぐわかるPerl」4.5 配列は勝手に伸び縮みする | トップページ | 4.7 スライスと範囲演算子「..」 »