下記のようなスクリプトがあります。
これは、CSVファイルを1行表示し、編集可能にするスクリプトの1行表示部分です。
これを全行表示するスクリプトに変更したいと考えています。
while ($cnt) {
foreach(@csv2){ ..............................
}
}
とすると無限ループするようです。(サーバーが固まる)
webで調べたのですが、$cnt = '1'or die "$!"としても抜けだせません。
行が無くなったら作業を終了するとしたいのですが、どうすればいいでしょうか?
初歩的な質問で恐縮なのですが、レンタルサーバーをこれ以上固まらせるわけ
にもいかないため、ご教授頂ければと思います。
@csv2 = split(/\<>/,$csv[$param{'num'}]);
$cnt = '1';
foreach(@csv2){
&trString(\$_, "1",);
if($_ eq $csv2[-1]){ chomp($_); }
print "<tr>\n";
print qq|<td><input type="text" name="$cnt" size="30" value="$_"></td>|;
print "</tr>\n";
$cnt++;
}
No.1ベストアンサー
- 回答日時:
みた感じ、質問文内のスクリプトは、
(1)配列@csvから1行抽出。
(2)抽出したものを分割したものをinputコントロールとして出力。
――としているので、全行出力するなら、@csvについてループさせる必要があります。
なので、$cntを操作しても、うまくいかないかと。
$cntは、1行を分割した個々の要素を数えるのに使っているので。
たとえば、質問文スクリプトをサブルーチン化して、@csvの各行に対してそれを呼び出すようにするとかいった方向でスクリプトを書き換えてみては。
この回答への補足
ご回答大変ありがとうございます。
大変申し訳ございません。
当方、プログラマではなく、落ちてるCGIを弄る程度しか出来ず、基本的なことを学んでおりません。
サーバーが固まっても構いませんので、ざっくりとしたやり方をご教授いただけませんでしょうか?
No.2
- 回答日時:
たとえば、こんなのとか:
sub makeform_edit_csv_by_line(){
my( $csv, $line_number ) = @_;
my @csv2 = split(/<>/, $csv );
my $cnt = 1;
print "<tr>\n";
foreach( @csv2 ){
&trString(\$_, "1", ); if( $_ eq $csv2[-1] ){ chomp($_); }
print qq|<td><input type="text" name="${line_number}_${cnt}" size="30" value="${_}"></td>|;
$cnt++;
}
print "</tr>\n";
}
参考URL:http://www.ideone.com/urlLA
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- その他(プログラミング・Web制作) atcoder python コードへの助言 2 2022/08/12 15:31
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時パラメータを使用するとE...
-
perlスクリプト s/^\\s+//; ...
-
Excel VBAでリンク切れをチェッ...
-
Excel VBA 『Call』で呼び出す...
-
例外処理のフローチャートの記...
-
ユーザー定義関数に#NAME?が返...
-
VBAでoutlook365が起動しません。
-
VBAで別モジュールへの変数の受...
-
モジュールの最大数はいくつな...
-
ユーザーフォームに最小化・最...
-
VBでグローバル変数を宣言するには
-
'Range'メソッドは失敗しました
-
Excel VBAで、ユーザーフォーム...
-
サブルーチンを認識しません。
-
エクセルVBAでシートモジュール...
-
Excelシート内セル記述の違いに...
-
perl起動方法
-
【vba】フォームに書いてあ...
-
Excel VBA 定義されたプロージ...
-
VBAで旧字体を異字体に一括で変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エラー
-
XML::XPathで日本語検索するには
-
perlスクリプト s/^\\s+//; ...
-
PerlでIPアドレスを取得する方法
-
実行時パラメータを使用するとE...
-
perl+shiftjisで5c文字化けの対...
-
「CGIプログラムエラー」って何...
-
フォームから送られてきた文字...
-
正規表現でのエラー
-
何時間後を求める。
-
Perl 教えてください。
-
windowsXP上で動作する最新版の...
-
UTF8でperlスクリプトを書くと...
-
メールフォームから大きめの添...
-
ActivePerl 1行入力で 'と"が...
-
ローカルテストOKのPerl サー...
-
perlでactive directoryに登録
-
Perlで長音
-
syntax OKなのに・・・
-
Pod::Usageで日本語を使用する...
おすすめ情報