0
我是Perl新手,我試圖編寫一個腳本獲取tar文件的路徑,檢查是否有txt文件,如果是提取該文件輸出文件夾。這裏是我的代碼:如何在Perl中提取tar文件到目標目錄
#!/usr/bin/perl
use strict;
use warnings;
use Archive::Tar;
use File::Spec::Functions qw(catdir);
#checking if tar file contain a txt file, if yes extract it to a folder
my $tarPath = 'path/to/tarArchive';
my $tar = Archive::Tar->new($tarPath);
my @files = $tar->list_files;
my $output_dir = 'C:/output/path';
foreach my $file (@files) {
if ($file =~ /txt$/) {
my $extracted_file = catdir($fileName, $file);
my $extracted_path = catdir($output_dir, $file);
$tar->extract($extracted_file, $output_dir);
print $extracted_file;
}
}
exit 0;
當我運行此腳本我得到一個錯誤:在檔案沒有這樣的文件。
你能幫我理解我在做什麼錯,什麼應該是正確的命令?
縮小您的問題。你能提取一個你知道有一個文本文件的文件嗎?現在刪除所有的File :: Find代碼。 – toolic 2014-11-01 13:53:25
工具,我已經縮小了我的問題。我仍然得到這個錯誤,並找不到原因。 – user1798339 2014-11-01 19:09:08
你的代碼不能編譯:$ fileName沒有聲明。另外,請用行號顯示您的EXACT錯誤信息。 – toolic 2014-11-01 19:24:48