- ベストアンサー
変数の書き方
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(数字)が呼び出されてしまいます。 繰り返し文の場所に上記のように変数を入れていくには、どのようにすればよろしいのでしょうか?
- みんなの回答 (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"; } みたいにした方が楽だと思います。
その他の回答 (1)
- kabaokaba
- ベストアンサー率51% (724/1416)
配列のまま使うだけ 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"; }
お礼
ご回答ありがとうございます。 分かりやすいご説明に感謝いたします。
お礼
ご回答ありがとうございます。 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;} 適当にこんな感じでやってみたのですが、登録量が増えてくるとこれでは大変でした。 教えていただいた、一行目の方法を使わせていただきます。 ご親切に感謝いたします。