perlプログラムで
for文で ループ分の配列定義するには どうしたらよいですか?
下記のようなことができないかと 考えております。
for(my $i = 0; $i < $file_no; $i++){
my @{"segments$i"} =(); #配列定義
my ${"line$i"}=""; #変数定義
my %{"hash$i"}= (); #ハッシュ定義
open(ARG1,$ARGV[$i]);
while(<ARG1>){
${'line'.$i} = $_;
chomp ${'line'.$i};
@{'segments'.$i} = split(/\t/,${'line'.$i});
${'hash'.$i}{${'segments'.$i}[0]}=${'segments'.$i}[1];
}
close(ARG1);
}
#下記で、その後 各ハッシュに設定したデータをもとに いろいろ計算したい
foreach my $a (keys %{'hash'.$i}){
・・・
}
今は、Can't declare array dereference in "my" at test.pl line XX, near "} =" と 配列定義でエラーとなり処理できません。
No.1ベストアンサー
- 回答日時:
えぇっと.... わざわざそんな面倒なことをする理由が思いつかない. 配列とリファレンスを使えば同じことができる. たとえば「lineほげほげ」は, 配列を使って
${'line'.$i} = $_;
の代わりに
$line[$i] = $_;
とすればより簡単になるのでは.
ところで, forループの中で my するとその変数は「forループの外」では使えないような気がするんだが....
この回答への補足
リファレンスを使えばよいとは わかったのですが、そもそも このような書き方がダメな理由が分からなかったので、教えてほしかったのです。
my は for文の中だけしか利用できないのは 見落としておりました。
むしろ それがひっかかっていたような気がします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Excel(エクセル) vbaで列幅について 1 2022/11/15 08:31
- 英語 If I was at home, my mom was the one who always・・・ 6 2022/09/01 20:24
- 英語 「this is the/my first time~」の文法上の制約について 1 2023/04/06 09:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クラスに配列を渡す方法
-
VBScript 配列
-
perl 初等プログラミングについて
-
Strawberry Perl for Windows ...
-
DataGridViewに配列の値を表示...
-
参照配列の要素数の求め方は?
-
Dim flag(4) as boolean で配列...
-
エクセルVBAでTransposeの不思議
-
Excel VBA ユーザーフォームの...
-
VBAのautofilter、criteriaの配...
-
VB6で配列の最大値を簡単に求め...
-
perlで2次元配列をサブルーチ...
-
リストボックスに縦スクロール...
-
文字の整列(printf)
-
プログラミングについて。 1つ...
-
画面を強制的に再描画させる方法
-
VBのReturnの使い方
-
DoEventsが必要な理由について
-
pythonでファイルのコメント行...
-
DOSコマンドのループ内のTIMEコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのautofilter、criteriaの配...
-
二次元配列のインデックスについて
-
リストボックスに縦スクロール...
-
Excel VBA ユーザーフォームの...
-
マクロ Publicでの配列定義
-
エクセルVBAでTransposeの不思議
-
二次元配列における要素数のは...
-
Strawberry Perl for Windows ...
-
perlで2次元配列をサブルーチ...
-
クラスに配列を渡す方法
-
Dim flag(4) as boolean で配列...
-
文字の整列(printf)
-
perlで配列の要素が空なのを知...
-
jcode->jfold で禁則処理
-
VB6で配列の最大値を簡単に求め...
-
perl 配列の要素数について
-
ファイル名に日付・時刻を付与...
-
チェックボックスのperlでの値...
-
組み合わせについての質問です...
-
配列を初期化する時ってどうす...
おすすめ情報