0
私はFile::Find
を使用してディレクトリツリーを実行しています。読み込みのために現在のファイルを開こうとすると、私はNo such file or directory
となります。これは、ディレクトリツリー内のすべてのファイルで発生します。ここでオープンエラー - このようなファイルやディレクトリはありません
は、私がfind()
に使うサブです:
sub {
if (-d) {
return;
}
if (-f) {
my $file = ${File::Find::name};
open (my $IN, '<', '$file') or die "$!\n";
while (<$IN>) {
### Do some formatting.
}
close $IN;
}
}
それは行に失敗します。
open (my $IN, '<', '$file') or die "$!\n";
私はそれは多分リンクの問題だと思ったが、それでもfollow => 1
オプションで、私はこれを取得しますエラー。
ところで、follow
がないと、私が見つけた最初のディレクトリの最初のファイルにあります。エラーは最後のディレクトリの最後のファイルにあります。(どちらの場合も最初ですファイルはFile::Find
によって検査される)。
'' $ '、' <'、' $ file ') 'という名前のファイルは、' '' 'が変数を補間しないので、' '$-f-i-l-e''という名前のファイルを開こうとします。あなたがすでに気づいたように、二重引用符 '' '(補間する)を使うこともできますし、それらを使用せずに単に' $ file'を書くこともできます。 – PerlDuck
@PerlDuckご覧のとおり、答え:また、 '$ file'だけを書いた方が良いです、私はそのオプションを逃したと信じられません! – yonyon100
@PerlDuckそれを削除する理由はありません。 – yonyon100