※ ChatGPTを利用し、要約された質問です(原文:複数の配列の要素を繰り返し処理をして書き込むと変数の中身がおかしくなってしまいます。)
複数の配列要素を繰り返し処理して書き込むと変数の中身がおかしくなる
このQ&Aのポイント
質問者は、複数の配列の要素を繰り返し処理して書き込もうとしていますが、変数の中身が空になってしまう問題が発生しています。
質問者はポストメソッドを使用して複数のテキストを受け取り、書き込もうとしていますが、書き込む内容が空になってしまいます。
質問者は、arg_$j変数の値が空になってしまい、書き込みが正常に行われないことに困っています。なぜこのような結果になるのか理解できていません。
複数の配列の要素を繰り返し処理をして書き込むと変数の中身がおかしくなってしまいます。
いつもお世話になります
複数の配列の要素を繰り返し処理をして書き込むと変数の中身がおかしくなってしまいます。
ポストメソッドで複数のテキストを受けて書き込みたいのですが、書き込む内容が""になってしまいます
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|;として
変数の中身を検証するためにコンソールに出力すると中身は "" になっています
宜しく御教授お願いします。
お礼
シオンさんどうもあるがとうございました ''を""に変えたら良い結果を得られました 私が変数の形の扱いを正確に理解できていなかった為起こったミスでした、勉強しなおします_(--)_