0
我編寫了一些perl代碼來獲取一些文件名並從文件中獲取一些值。如果我從當前目錄i執行我的perl腳本,那麼所有輸入文件所在的目錄都會執行,它執行得很好,並給我很好的結果。如果我將perl腳本更改爲不同的目錄,則表示無法打開該文件。這裏是一小段代碼。程序沒有從perl中的其他目錄執行
#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long;
my $opt_filepath;
&GetOptions (
"filepath:s" => \$opt_filepath,);
my $dir ="/home/priya/scripts/${opt_filepath}/check"; #base directory to look up for the files
print "$dir \n";
# Create output csv file
my $fileName = "Output.csv"; #output redirects to current directory
# ---- Read and Write as .csv file -------------------------
open (FILEHANDLER, ">", $fileName) or die("Could not write output File '$fileName' : $!");
print FILEHANDLER "Section,";
print FILEHANDLER "Result";
print FILEHANDLER "\n";
my @fileName =();
my @FileContents =();
my @Result =();
opendir(DIR, $dir) or die "Unable to read Directory : $!";
while (my $file = readdir(DIR)) {
#Only files not subdirectories
next unless (-f "$dir/$file");
next unless ($file =~ m/^EXP_.*/i); #will search for all EXP files
print "$file \n";
@fileName = split(/_/, $file, 8);
print FILEHANDLER $fileName[1].",";
open (FH, "<", $file) or die("Could not open Input File : $!");
@FileContents = <FH>;
@Result = grep (/^ADDSUB/, @FileContents);
print FILEHANDLER $FileContents[1]."\n";
close FH;
}
closedir(DIR);
close FILEHANDLER;
exit 0;
如果執行中,我都輸入EXP文件的目錄,它是執行好,給了我很好的效果。如果我將代碼複製到不同的目錄,然後執行它給我這個錯誤
>priyascript.pl -filepath test
/home/priya/scripts/test/check
EXPresult_101101_test
Could not open Input File : No such file or directory at priyascript.pl line 31
我打印$文件,以檢查它是否傳遞文件名。它傳遞文件名但不打開它。 我與所有文件夾的權限檢查,並給予777
請幫我
這只是我的一小段代碼。如果有什麼遺漏,請忽略 – Priya
那麼89行到'idve.pl'的位置在哪裏? – nowox
您的代碼將不會執行。有編譯錯誤。在第33行聲明'@ Result'。 – serenesat