Perlの基礎(配列、配列関数)
配列
- @から始まり変数と同様に英字でスタート。アンダースコアも使える。
- 配列の中の各要素は $配列名[添え字]で表す事ができる。
@fruit = ("apple","orange","banana"); print "$fruit[2]\n"; > banana
- 配列の個数を取り出す。
@fruit = ("apple","orange","banana"); $num = @fruit; #配列の個数 print "$num\n"; > 3
- 配列に要素を追加する。
@fruit = ("apple","orange","banana"); @fruit = (@fruit,"grape"); print "@fruit\n"; > apple orange banana grape
配列関数
push
配列の末尾へ要素を追加pop
配列の末尾の要素を削除anshift
配列の先頭へ要素を追加shift
配列の先頭の要素を削除reverse
配列の順序を逆順にするsort
配列の順序をソートする
ソートの方法がいろいろあったので書いておく。
- 文字列を逆ソート
@cher = ("C","A","D","B"); @cher = sort{ $b cmp $a } @cher; print "@cher\n"; > D C B A
- 数値を逆ソート
@cher =( 3,1,4,2); @cher = sort{ $b <=> $a } @cher; print "@cher\n"; > 4 3 2 1
どうしてこのようにするのかは全く理解してません…
多次元配列
@list = ( ['a','b','c']; ['d','e','f']; ['g','h','i']; );
上記の二次元配列を例として1番目の配列だけ出力するには
@list = ( ['a','b','c'], ['d','e','f'], ['g','h','i'], ); print "@{$list[0]}\n"; > a b c
要素ごとに展開表示させるにはforeach文で繰り返し処理をする
@list = ( ['a','b','c'], ['d','e','f'], ['g','h','i'], ); foreach $tmp(@list) { print "@{$tmp}\n"; } > a b c > d e f > g h i