• ベストアンサー

変数の書き方

open(SIN,"$file") || &error("Error"); $data = <SIN>; close(SIN); ($data1,$data2,$data3,$data4,$data5) = split(/<>/, $data); $i=0; while ($i < 5) { $i++; print "<input type=text name=data$i size=70 value=\"$data$i\">\n"; } valueの所に $data1 $data2 $data3 $data4 $data5 と呼び出したいのですが、上記のように記入するとvalueのところには$i(数字)が呼び出されてしまいます。 繰り返し文の場所に上記のように変数を入れていくには、どのようにすればよろしいのでしょうか?

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

  • ベストアンサー
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.2

print "<input type=text name=data$i size=70 value=\"${\"data$i\"}\">\n"; とすればよいです。 しかし、ここはすなおに配列を使って my @data = split(/<>/, $data); my $i = 0; while ($i < 5) { $i++; print "<input type=text name=data$i size=70 value=\"$data[$i-1]\">\n"; } みたいにした方が楽だと思います。

cocolink
質問者

お礼

ご回答ありがとうございます。 if ($i ==1) {$data = $data1; } elsif ($i ==2) {$data = $data2;} elsif ($i ==3) {$data = $data3;} elsif ($i ==4) {$data = $data4;} elsif ($i ==5) {$data = $data5;} 適当にこんな感じでやってみたのですが、登録量が増えてくるとこれでは大変でした。 教えていただいた、一行目の方法を使わせていただきます。 ご親切に感謝いたします。

その他の回答 (1)

  • kabaokaba
  • ベストアンサー率51% (724/1416)
回答No.1

配列のまま使うだけ open my $SIN, <, "$file" || error("Error"); my @data = split(/<>/, $SIN); close $SIN; for (0..5){ print "<input type=text name=data$i size=70 value=\"$data[$_]\">\n"; }

cocolink
質問者

お礼

ご回答ありがとうございます。 分かりやすいご説明に感謝いたします。

関連するQ&A