2012-10-10 123 views
2

早上好!Perl - 將輸出打印到不同目錄中的文件

對不起,如果這之前張貼 - 我找不到它。我只需要一點點正確的方向,這是我的功課,我覺得它已經快完成了。我想要做的是從運行腳本的不同文件夾中的文件中獲取數據,在Perl中處理數據,然後將輸出打印到另一個目錄。現在我完成了這兩部分,但是我失敗的是Perl沒有找到我想要保存文件的路徑。它只是sais「沒有該名稱的文件或目錄存在」,但它!下面是腳本,這部分:

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; 

我敢打賭,它的一些愚蠢的事......

+0

感謝您的答案! '使用文件::基名;'和 '開放(OUTFILE, 「> $ PATH /」 基名($文件))' 的伎倆。 –

+0

沒有必要在標題中加入'解決'。 – Toto

回答

3

因爲你混合的「寫」令牌>與文件名。這:

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

應該是:

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

你也可能將不得不從文件名剝離.../Docs/unprocessed/前綴:

use File::Basename; 

open (OUTFILE, ">$path/" . basename($file)) 
+0

它的工作原理!感謝百萬豪伊! 現在我的開機有一個特定的Perlmonk約會... –

+2

三個參數打開會更好'open(OUTFILE,'>',「$ path /」。basename($ file))''以防止奇怪的事情你的變量。 – RobEarl

+4

@RobEarl除了使用詞法文件句柄的'open'的三參數版本會更好。 '打開我的$ fh,'>','...'或死於'悲慘';' – dgw

相關問題