![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
use Class::Struct;
struct command =>
[
my @pppoe =
(command->new(
name => 'pppoe1',
com1 => 'pppoe1 -m',
com2 => 'pppoe1 -c',),
command->new(
name => 'pppoe2',
com1 => 'pppoe2 -m',
com2 => 'pppoe2 -c',))
という風な定義になっているときに、
print ${"pppoe"}[0]->name;
というような指定はできないでしょうか?
配列名を入れた配列@a=("pppoe")などで動的に
していしたいためですが。だめなら他の方法は
ないでしょうか?
No.2ベストアンサー
- 回答日時:
#myをやめる
use Class::Struct;
struct Command => [
name => '$',
com1 => '$',
com2 => '$',
];
@pppoe = (
Command->new(
name => 'pppoe1',
com1 => 'pppoe1 -m',
com2 => 'pppoe1 -c'),
Command->new(
name => 'pppoe2',
com1 => 'pppoe2 -m',
com2 => 'pppoe2 -c',));
print ${"pppoe"}[0]->name;
No.4
- 回答日時:
>なぜmyをはずすとうまくいくのでしょうか?
Perlの実装者じゃないんで本当の所はよくわかりませんが、
多分、名前の管理をするところが異なるためだと思います。
私も、どちらかというと普通にリファレンスを使った方が良いと思います。
No.3
- 回答日時:
リファレンスを使ったほうがスマートだと思います。
@a = (\@pppoe);
print $a[0][0]->name;
ハッシュを使った場合。こちらのほうがよりベター?
my %arrayHash = (pppoe => \@pppoe);
print $arrayHash{pppoe}[0]->name;
# もちろんハッシュのキーは文字列変数で指定できる
my $key = "pppoe";
print $arrayHash{$pppoe}[0]->name;
どうしてもリファレンスを使いたくなかったらevalで。
my $arrayName = "pppoe";
eval("print \${$arrayName}[0]->name;");
No.1
- 回答日時:
# 邪道のシンボリックリファレンスを使って、、
no strict;
@a = qw( a1 a2 );
@a1 = ( 1, 2, 3 );
@a2 = qw( a b c );
print ${$a[0]}[2], "\n";
print ${$a[1]}[1], "\n";
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- CM 1996年のモータボートのCMです。You tubeであります。 https://m.youtube 1 2023/06/27 19:19
- 工学 ちなみになぜv=(v・e1)e1+(v・e2)e2はe1やe2が、正規直交基底でないと成り立たないと 2 2022/12/22 17:22
- iCloud iPhoneに写真がたまって来たのでPOOLというiCloudストレージを年間6千円弱で契約し、使い 1 2022/10/06 20:50
- 英語 He was the first one to introduce the concept of h 1 2023/01/20 11:33
- 工学 以前、線形代数からフーリエ級数展開を導く上で 式v=(v, e1)e1+(v, e2)e2+…+(v 6 2022/06/29 17:24
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- その他(ネットショッピング・通販・ECサイト) バイアクアラは鶴亀輸入で通販できますか!?それとも通販ドクターpoで処方?どっちが・・ バイアクアラ 1 2023/02/10 11:30
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- 数学 「(((a0)/2)・1, 1) …(a0)/2の1倍と1の内積 =(a0)(1, 1) …1 と1 5 2022/07/05 19:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6の公式リファレンスはありま...
-
WinAPI「MsgWaitForMultipleObj...
-
画面を強制的に再描画させる方法
-
ExcelVBA FindNextを使用して条...
-
Excel VBA ユーザーフォームの...
-
エクセルの当番表を作っていま...
-
Excel VBAで、アクティブシート...
-
エクセルVBAの勉強を始めま...
-
VBAのautofilter、criteriaの配...
-
条件に一致した塩基配列を含む...
-
VBのReturnの使い方
-
アクティブセルから、A列最終行...
-
index関数で複数個抜き出す
-
VBAでの一時停止と再開の方法
-
DoEventsが必要な理由について
-
多重ループの抜けだし方
-
再帰関数のインライン展開
-
ループ内での条件処理
-
ハッシュ検索はなぜ速い
-
csvファイルのソート
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
双方向リスト(?)
-
HTML::TemplateのTMPL_LOOPにつ...
-
if($key){ ($key eq 'aaa') ||...
-
連番ごとに印をつける
-
変数に何も入ってないとき
-
ハッシュを無名変数へ代入して...
-
Perlのリファレンスについて
-
VB6の公式リファレンスはありま...
-
DBIを使用してデータを連想配列...
-
bashのリファレンス的なWEB...
-
ハッシュの配列を作ることは可...
-
Yahooの掲示板のような掲示板を...
-
重複する値を表示しない
-
Perl構造体、出力方法
-
ファイルからデータを読み込ん...
-
クラスの作り方
-
構造体の配列の指定方法
-
サブルーチンの返値に配列のハ...
-
C言語について。
-
Perlで縦横変換のような事をし...
おすすめ情報