これからの季節に親子でハイキング! >>

いつもお世話になります
複数の配列の要素を繰り返し処理をして書き込むと変数の中身がおかしくなってしまいます。
ポストメソッドで複数のテキストを受けて書き込みたいのですが、書き込む内容が""になってしまいます

print qq|<form action=\"$myself\" method=\"POST\">\n|;

LOOP:foreach $i (0..7) {
foreach $j ($x..$x + 3) {

print qq|@eqipument[$j]<input type=text name="arg_$j" size_1=35>\n|;

last LOOP if ($j == $#eqipument);
}
$x = $x + $x_colm;
print qq|<br>\n|;
}

@eqipumentの配列の要素を変数arg_$jで配列が終わるまで繰り返して入力画面を表示させます

その後
# デスク書き込み
open(OUT,">>$logfile") || &error("Write Error : $logfile");
$j = 0;
foreach(0..@eqipument) {
print OUT "$in{'arg_$j'}<>";
$j++;
}
close(OUT);

として書き込みをすると、変数arg_$jの内容が空になってしまい<>だけがかきこまれます
変数部分を arg_0,arg_1,arg_2.... と明示して書くときちんと入力画面で入力した
テキストが書きこめれますが、入力項目も多いですしプログラム的にも見難いので
繰り返し処理で書き込みをしたいのですがなぜこのような結果になるのか(arg_$jの内容が空になる)理解できません又

print qq|$in{'arg_$j'}\n|;として

変数の中身を検証するためにコンソールに出力すると中身は "" になっています
宜しく御教授お願いします。

A 回答 (1件)

print OUT "$in{'arg_$j'}<>";



の部分を
print OUT qq|$in{"arg_$j"}<>|;

としたらどうでしょう?
    • good
    • 0
この回答へのお礼

シオンさんどうもあるがとうございました
''を""に変えたら良い結果を得られました
私が変数の形の扱いを正確に理解できていなかった為起こったミスでした、勉強しなおします_(--)_

お礼日時:2005/02/21 13:24

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


人気Q&Aランキング