- ベストアンサー
配列を動的に指定したいのですが、
@protocol = ("ppooe","mld"); @pppoe = ("kdkfdk","kdkfkd"); @mld = ("kdkfkd","kdkfkd"); とあるときに、@pppoeと指定するかわりに,@$protocol[0]のような指定をしたいのです。 この方法でうまくいかないのはわかっているのですが、他の方法で同じようなことはできないでしょうか。よろしくおねがいします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
@protocol = ("pppoe","mld"); @pppoe = ("kdkfdk","kdkfkd"); @mld = ("kdkfkd","kdkfkd"); @data=@{@protocol[0]};
その他の回答 (2)
- galluda
- ベストアンサー率35% (440/1242)
がるです。 んっと。¥は「参照(Perl的にはこちらが正しい用語のようです)」とか「ポインタ(CやC++をやっているのであればこちらがわかりやすいかと)」とか呼ばれる概念です。 ものすごく大まかに書くと、 @data は「dataという配列変数に入っているデータ全部」を指しますが、 \@data とすると「dataという配列変数の先頭位置」を指します。 参照という概念は、ある程度プログラムを組んでいくと大切になってくるので、一度Googleなどで色々調べられてみることをお勧めいたします。
- galluda
- ベストアンサー率35% (440/1242)
がると申します。 んっと…ちょっと、質問の意図を取り違えている可能性がある気がしてはいるのですが。 なんとなく、おっしゃることに近しい感じですと、 # 配列の設定 @pppoe = ("kdkfdk","kdkfkd"); @mld = ("kdkfkd","kdkfkd"); # 配列管理用の配列の設定 @protocol = (\@pppoe, \@mld); # データの取り出し @data = @{$protocol[0]}; こんな感じでどうでしょうか?
お礼
うまくいきました。ありがとうございます。 ところで\@の\はどういう意味なのでしょうか?
お礼
ありがとうございます。 このほうほうでもいけますね。