
Perlはかじっている程度の者です。
STDINから全てのデータを
read( STDIN, $strRead, $ENV{CONTENT_LENGTH} );
として読み込んで、次に
read( STDIN, $strRead, $ENV{CONTENT_LENGTH} );
とすると、もう読み込めませんよね。
なので、
seek( STDIN, 0, 0 );
を毎回呼び出して、ポントを先頭にもっていってから読もうとしたのですが・・だめでした。
そこで質問なのですが、CGIプログラムでSTDINから何度も重複してデータを読み込む方法はありませんか?
No.1ベストアンサー
- 回答日時:
STDIN からは、基本的にclose しなければ、何度でも読み込むことができます。
多分、質問者の仰っているのは、既に読み込んだデータをもう一度読み直せるかということかと思いますが、それはできません。
$strRead に読み込んであるんだからそれを再利用すればいいことだと思います。(あるいは、もう一度読み直すような処理が必要なら、ファイルなどに取って置いてそれを読み直すとか)
やはり無理ですか。
perlのスパゲッティソースを解消しようと思い、STDINから読み込むような処理を関数でまとめようと思ったのですが、そうすると処理が隠蔽されるため、そんな仕様を意識せずに関数を何度も呼び出して使うということが望まれます。
そのときにSTDINから1度読み込めてもその後は読み込めないとなると使い勝手が非常に悪いので、なんとかならないかと思った次第です。
しかしperlにはstatic宣言して静的メモリを確保するというようなことができません。
そういう面ではperlってちょっと使いづらい面もありますよね。。
STDINから何度も同じものを読み込むという手段は諦めて、何か他の方法を考えることにします。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MATLAB グローバル変数の宣言
-
エディットボックスの表示方法...
-
ExcelをCSV書き出す場合のシー...
-
Javaで同一のファイルを読み込...
-
CSVが可変長の場合の検索方法
-
エクセルVBA コードが同じでも...
-
VB6.0でDB接続する際に切断時の...
-
CSVファイルについて
-
vba dir の相対パス
-
window.open でのファイル指定方法
-
batファイルでrenameができませ...
-
read() on unopened filehandle...
-
C言語でファイル名を取得
-
フォルダが開かなくなりました。
-
全角と半角文字が混在している...
-
VB6で"r"みたいな文字が返って...
-
ANSI Cでファイル名、ディレク...
-
[awk]uniq -cで複数ファイルの...
-
ファイル名に日付を入れてアッ...
-
バッチファイルで、記号を含む...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelをCSV書き出す場合のシー...
-
エクセルVBA コードが同じでも...
-
VBAでCSVファイルを途中行まで...
-
ReadLineでの読み出し行を指定する
-
VBAで巨大なファイルの途中から...
-
VB6.0でDB接続する際に切断時の...
-
MATLAB グローバル変数の宣言
-
openした後、closeしないでプロ...
-
CSVが可変長の場合の検索方法
-
データファイルの行を削除する
-
5行おきに5行ずつ抽出するに...
-
データファイルをプロットする(...
-
Perlの変数に文字数制限(容量...
-
拡張子 ”log” と ” dat” の違い
-
【VBA】複数のエクセルファイル...
-
JavaでCSVファイルを高速に読む...
-
CGI(Perl)でWeb上から作成...
-
検索ボックスから製品名を検索...
-
CSVファイルの内容を編集する方...
-
ADOによるCSVファイルからのデ...
おすすめ情報