こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Perl 変数 連番 for

いつもお世話になっております。

for文?の使い方を教えてほしいです。
my $test1 = $form->param('test1');
my $test2 = $form->param('test2');
my $test3 = $form->param('test3');
my $test4 = $form->param('test4');
my $test5 = $form->param('test5');

このようにtestは同じでその後ろに連番がついている場合の変数なのですが
これが何十個もあれば、記述するのも管理するのも、少し面倒です。

それでfor文を利用し、
for ($i= 1; $i < 31; $i++){
この中の記述
}

ソースを短縮したいのですが、
「この中の記述」がわかりません・・・
ご教示お願い致します。

投稿日時 - 2017-09-01 09:42:03

QNo.9369531

困ってます

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

質問には、少し無理があります。for ループの中で定義した my 変数はループ終了後にはアクセスが不可になるので、グローバル変数を使う必要があります。

for (my $i = 1; $i < 31; $i++) {
eval "\$test$i = \$form->param('test$i');";
}

もう1つの方法として、配列を使うことができます。1つの変数で済むので、自然ではないかと思います。

my @test;
for (my $i = 1; $i < 31; $i++) {
$test[$i] = $form->param("test$i");
}

投稿日時 - 2017-09-01 18:35:38

お礼

ありがとうございました
解決することができました!!

投稿日時 - 2017-09-04 09:50:06

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問