2

おはようございます!

これが以前に投稿されていた場合は申し訳ありません - 見つけられませんでした。正しい方向へのちょっとしたポイントが必要なだけです。これは私の宿題であり、ほぼ完了したと感じています。私がやりたいことは、スクリプトが実行されている場所とは別のフォルダーにあるファイルからデータを取得し、Perl 内でデータを処理してから、出力を別のディレクトリに出力することです。これで 2 つの部分が完了しましたが、失敗したのは、Perl がファイルを保存する場所へのパスを見つけられないことです。「その名前のファイルまたはディレクトリは存在しません」とだけ表示されますが、そうです! そのためのスクリプトの一部を次に示します。

my @files = <$ENV{HOME}/Docs/unprocessed/*.txt>;
my $path = "$ENV{HOME}/Docs/results";

<looping through @files, processing each file in the unprocessed folder...>

open (OUTFILE, $path . '>$file') or die $!;
print OUTFILE ""; # "" Is really the finished calculations from the loop, not important here.
close FILE;
close OUTFILE;

私はそれが何か愚かなことに違いない...

4

1 に答える 1

3

「書き込み」トークン>をファイル名と混合しているためです。これ:

open (OUTFILE, $path . '>$file')

次のようにする必要があります。

open (OUTFILE, ">$path/$file")

.../Docs/unprocessed/また、ファイル名からプレフィックスを削除する必要がある場合もあります。

use File::Basename;

open (OUTFILE, ">$path/" . basename($file))
于 2012-10-10T07:12:26.077 に答える