• 締切済み

変数名に変数を使用

$AAAという変数の後にforで変化する変数$iをつけたいのですが、 (FILE1,FILE2…と変化するように) どのようにすればいいのでしょうか? $AAAと$iを.で結んだりダブルクォーテーションで囲んでみたりしたのですがダメでした。

みんなの回答

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.5

#以下のようにしては如何でしょうか for ($i = 1; $i <= 10; $i++){ $j = $i + 10; $string = '$FILE' . "$i" . '=' . "$j;"; # print ("$string\n"); eval($string); } print ("$FILE1\n"); print ("$FILE2\n"); print ("$FILE3\n"); print ("$FILE4\n"); print ("$FILE5\n"); print ("$FILE6\n"); print ("$FILE7\n"); print ("$FILE8\n"); print ("$FILE9\n");

  • damejan
  • ベストアンサー率30% (58/192)
回答No.4

プログラム中で動的に変数を生成したいということなのでしょうか? あえて、独立した変数を生成する意図が分かりませんが、大抵の用途では、以下のように配列を使うことで済むのではないでしょうか。 #!/usr/bin/perl $MAX_NUM = 10; @FILE = (); for($i=0; $i<$MAX_NUM; $i++){ push(@FILE, "AAA$i"); } for($i=0; $i<$MAX_NUM; $i++){ print("@FILE[$i]\n"); }

  • 3rd
  • ベストアンサー率30% (7/23)
回答No.3

これが誉められたものなのかどうかは別として、 こんな感じのことが行いたいのでしょうか? 当方の環境では、動きました。 #!/usr/bin/perl $name = "file"; for ($i=1 ; $i<6 ;$i++){ ${"$name$i"} = "AAA$i"; } print "\$file1 = $file1\n"; print "\$file2 = $file2\n"; print "\$file3 = $file3\n"; print "\$file4 = $file4\n"; print "\$file5 = $file5\n"; exit;

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

$AAA = "FILE" ; for ($i=1 ; $i<10 ;$i++){   $BBB = $AAA+$i ; } で$BBBがFILE1,FILE2…と変化すると思います。 当方にPerlが動作する環境が無くデバッグ出来ません。 ご確認下さい。

  • damejan
  • ベストアンサー率30% (58/192)
回答No.1

質問の意図がよく分かりません。 ちなみに、変数名に変数の使用はできません(この質問のタイトルの意味が分からないのですが・・・)。

KODAMAR
質問者

お礼

回答ありがとうございます。 例えばFILE1・FILE2…FILE10までの値があったとします。 for($i=1;$i<10;$i++){ $FILE$i = "AAA$i"; } 【結果】 FILE1 = AAA1 FILE2 = AAA2    : FILE10 = AAA10 のようにしたいのです。