Perlについての質問箱 28箱目
■ このスレッドは過去ログ倉庫に格納されています
0762デフォルトの名無しさん
2006/12/08(金) 00:32:12$unk[3] = [ split(/,/, "a,b,c,d") ];
以下、詳しい説明が必要なら。
配列変数はあくまで「スカラ値」の集まりなので、
split が返す「スカラ値のリスト」を1つの要素として代入する事はできません。
Perl での2次元配列は、配列変数のリファレンスを利用します。
リファレンスはスカラ値の一種なので、配列の要素として利用できるからです。
配列変数のリファレンスを作成するには [ LIST ] という構文が便利です。
LIST が入った匿名の(名前を持たない)配列変数へのリファレンスが作成できます。上の例なら
@unnamed_array = split(/,/, "a,b,c,d");
$unk[3] = \@unnamed_array;
とほぼ同じ意味です。
ちなみに、配列の中の1要素を添え字で参照する場合、取り出される値はスカラ値なので
@unk[3] ではなく $unk[3] のように、スカラ値を表す「$」を使う必要があります。
■ このスレッドは過去ログ倉庫に格納されています