お世話になります。
早速ですが、
xファイルから指定番目のレコードを削除するcgiを作成しています。
ロジックは簡単で、
指定があれば実際の削除作業(a-rtn)、
指定がなければ(初期状態)削除位置を指定させる画面表示(b-rtn)を
それぞれ実行するようなロジックです。
問題なく動いていましたが、
これまではa-rtnでのみ「全レコード数」を表示していたのですが、
このほど、b-rtnでも「全レコード数」表示したいと思い手を加えました。
実際にやったことは、a-rtnにあった下記の部分をb-rtnへ移動しただけです。
(初めに読んでおけば残っているので、後で使えると思っての対応です)
open(IN,"$file") || &error("Can't open $file");
@lines = <IN>;
close(IN);
$kensu = @lines; #全体件数
ところが作業をしてみると、
b-rtnでは「全レコード数」が表示されましたが、
a-rtnではレコードが無くなっていました。
(と言うより、読めていないのかなと思っています)
状況は以上ですが、
@linesに読み込んだデータは残っていると思っているのですが、
一度サーバーに帰ると消えてしまうのでしょうか。
移動ではなく、コピーにしたら問題なく稼働しています。
分かりにくい質問かと思いますが宜しくお願いします。
No.1ベストアンサー
- 回答日時:
Perl中の変数の内容は、現在の要求の HTML を出力し終った時点で無くなります。
出力したHTMLに対して閲覧者が次に操作を行なった時、前回の処理結果はもはや利用できません。これで、答えになっていますか?
早速有り難うございました。
やはりそうでしたか。
十分なる回答です。
この回答で充分なのですが、
ついでにお聞きします。
今回のようなケースはa-rtn、b-rtnでそれぞれ読めば良いのですが、
a-b間をデータ引き渡しなどしたい場合は、
ファイルを一旦出力して読むという手段が当たり前なのでしょうか。
何か良い考え方があれば教えていただきたいのですが。
宜しくお願いいたします。
No.2
- 回答日時:
> ファイルを一旦出力して読むという手段
これは、最後の手段ですね。 なぜかと言うと、大変な処理になるからです。
CGI と言うものは、複数の閲覧者から前後してあるいは同時にアクセスされる状況を想定せにゃなりません。 閲覧者対応に一時ファイルを管理したり用済みの一時ファイルを消す処理は、かなり大変です。
ではどうするかと言うと、条件によって複数の方法を使い分けます。
記憶すべきデータの容量(バイト数)が多い場合には、一見無駄な様でも再度データを作り直すのが良いでしょう。
容量が少い場合は、CGIパラメーターとか Cookie とかを使います。
CGIパラメーターというのは、URL末尾の「?」以降の部分です。 FORMを使ってるなら、 <input type="hidden" name="aaa" value="bbb"> とか書きます。
Cookie は、CGIパラメーターに慣れてからの方が良いかと。
何回も有り難うございます。
確かにそうですね、
言われてみるとよく分かります。
誰に対してもサーバーに書き込んでいたら飛んでもなくi/oが発生します。
何気なく(知らないで、そういうモノだと言うことで)使っていましたが、
FORMが解決していたのですね。
少なくともやりとりする部分を最小にすることが設計の初めと言うことですね。
よく分かりました。
お世話になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで教えて頂きたいのですが? 1 2022/04/29 02:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- HTML・CSS 詳しい方に質問です。 早急に解決したいと思っています。 ポートフォリオをMacBook で作成したと 2 2023/05/12 17:40
- Windows 95・98 再質問 5 2022/11/29 08:58
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで集計したい。
-
めちゃきれい
-
apacheでPerl CGIが作動せず、5...
-
(フリーの)ツリー掲示版CGI、...
-
ラズパイでのCGIで、pythonソー...
-
CGI.pmはもう古い!?
-
.htaccessについて
-
POSTメソッドの最大容量について
-
3DCG
-
/bin/awk '{print $5}'ってどう...
-
入力フォーム(電話番号)
-
誕生日占いをプログラムで作成...
-
number 改行が追加できない
-
生成AI画像について
-
ホームページにメールフォーム...
-
cgi アクセス制限 エラー
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
-
ホームページにCGIを設置したの...
-
ホームページにCGIを設置したの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで集計したい。
-
フォームを再送信しますか?
-
apacheでPerl CGIが作動せず、5...
-
ホームページでCGIのフォームを...
-
生成AI画像について
-
/bin/awk '{print $5}'ってどう...
-
入力フォーム(電話番号)
-
(フリーの)ツリー掲示版CGI、...
-
古ーくからフリーのtree.cgi掲...
-
VBAで条件から範囲を指定して色...
-
ホームページにメールフォーム...
-
一番簡単なCGI,掲示板の設置教...
-
CGIって何ですか?簡潔に教えて...
-
サーバーのエラーでおしえてく...
-
サイト訪問者の情報を取得したい
-
htmlからパラメータで、cgiに渡...
-
CGIで出力するhtmlの<!DOCTYPE ...
-
cgiからsendmailを送信で文字化け
-
POSTメソッドの最大容量について
-
ホームページにCGIを設置したの...
おすすめ情報