動的に配列の配列を作成
動的に配列の配列を作成
以下は、csvデータを標準入力から読み込んで行と列の2次元配列に格納します。
#!/usr/bin/perl -w use strict; # 変数宣言 my (@a, $i, $j); # 変数初期化 @a = (); #標準入力からcsvデータを読込み配列@aに格納 while () { chomp(); push(@a, [ split(",") ]); } # 配列の配列を取り出す for $i (0 .. $#a) { for $j (0 .. $#{$a[$i]}) { print '$a[' . $i . '][' . $j . ']=' . $a[$i][$j] . ' '; } print "\n"; }
- chomp関数は、標準入力からデータを読み込むと改行が付加されているので、それを除去。
- split関数は、標準入力から読み込んだデータが$_に格納されているので、それをカンマでスプリットし無名配列を作成。
- push関数は、配列@aにsplit関数で作成された無名配列のそのリファレンスを格納しています。
- 補足:無名配列を大括弧するとそのリファレンススカラー値を返す。