「これはヤバかったな」という遅刻エピソード

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

A 回答 (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");
    • good
    • 0

プログラム中で動的に変数を生成したいということなのでしょうか? あえて、独立した変数を生成する意図が分かりませんが、大抵の用途では、以下のように配列を使うことで済むのではないでしょうか。



#!/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");
}
    • good
    • 0

これが誉められたものなのかどうかは別として、


こんな感じのことが行いたいのでしょうか?
当方の環境では、動きました。

#!/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;
    • good
    • 0

$AAA = "FILE" ;


for ($i=1 ; $i<10 ;$i++){
  $BBB = $AAA+$i ;
}

で$BBBがFILE1,FILE2…と変化すると思います。
当方にPerlが動作する環境が無くデバッグ出来ません。

ご確認下さい。
    • good
    • 0

質問の意図がよく分かりません。


ちなみに、変数名に変数の使用はできません(この質問のタイトルの意味が分からないのですが・・・)。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

例えばFILE1・FILE2…FILE10までの値があったとします。
for($i=1;$i<10;$i++){
$FILE$i = "AAA$i";
}

【結果】
FILE1 = AAA1
FILE2 = AAA2
   :
FILE10 = AAA10

のようにしたいのです。

お礼日時:2003/05/14 15:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報