• ベストアンサー

配列を動的に指定したいのですが、

@protocol = ("ppooe","mld"); @pppoe = ("kdkfdk","kdkfkd"); @mld = ("kdkfkd","kdkfkd"); とあるときに、@pppoeと指定するかわりに,@$protocol[0]のような指定をしたいのです。 この方法でうまくいかないのはわかっているのですが、他の方法で同じようなことはできないでしょうか。よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

@protocol = ("pppoe","mld"); @pppoe = ("kdkfdk","kdkfkd"); @mld = ("kdkfkd","kdkfkd"); @data=@{@protocol[0]};

tamukikun
質問者

お礼

ありがとうございます。 このほうほうでもいけますね。

その他の回答 (2)

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.3

がるです。 んっと。¥は「参照(Perl的にはこちらが正しい用語のようです)」とか「ポインタ(CやC++をやっているのであればこちらがわかりやすいかと)」とか呼ばれる概念です。 ものすごく大まかに書くと、 @data は「dataという配列変数に入っているデータ全部」を指しますが、 \@data とすると「dataという配列変数の先頭位置」を指します。 参照という概念は、ある程度プログラムを組んでいくと大切になってくるので、一度Googleなどで色々調べられてみることをお勧めいたします。

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.1

がると申します。 んっと…ちょっと、質問の意図を取り違えている可能性がある気がしてはいるのですが。 なんとなく、おっしゃることに近しい感じですと、 # 配列の設定 @pppoe = ("kdkfdk","kdkfkd"); @mld = ("kdkfkd","kdkfkd"); # 配列管理用の配列の設定 @protocol = (\@pppoe, \@mld); # データの取り出し @data = @{$protocol[0]}; こんな感じでどうでしょうか?

tamukikun
質問者

お礼

うまくいきました。ありがとうございます。 ところで\@の\はどういう意味なのでしょうか?

関連するQ&A