人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlのファイルの読み込みについて、
質問させてください。

通常ファイルをopenしたのちに、
行入力演算子などで読み込むと思います。

open $fh, $hoge_txt;
while (<$fh>){
#
}

ファイルをopenしなくても、
行入力演算子などで読み込めるのでしょうか。

while (<$hoge_txt>){
#
}

よろしくお願いします。

●質問者: the_yakisoba
●カテゴリ:インターネット ウェブ制作
✍キーワード:open Perl ファイル 入力 演算子
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● nagase
●27ポイント

読み込むファイルを標準入力でリダイレクトすれば、プログラム中でファイルをオープンしなくても読み込むことはできます。

while(<STDIN>){
#
}

上記のプログラムを hogereade.pl として、目的のファイルが hoge.txt とすると、Unix系、Dos/Windows系のOSで下記のようなコマンドによってhoge.txtを読み込むことができます。

Unix/linux

hogeread.pl < hoge.txt

Dos/Windows

perl hogeread.pl < hoge.txt
◎質問者からの返答

ご回答ありがとうございます。

ファイルの中身が読めないことはわかりました。

たとえば、

下記のような記述をすると、

カレントディレクトリに該当するファイルが読み込めるのですが、

コレは "<>" を行入力演算子とは違う使い方をしているのでしょうか。

while (<*_test.pl>) {

print "$_\n";

}


2 ● tomqlo
●27ポイント

openを記述しなければ読み込めません。

openで読み込むファイル名を書かなければ、Perlはどのファイルからデータを読み込めばよいのか判断できないからです。


3 ● komamitsu
●26ポイント

<*_test.pl>のほうはglob演算子では?

http://perldoc.perl.org/functions/glob.html

> カレントディレクトリに該当するファイルが読み込める

ファイル名が表示される、ってことですよね?

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ