Perl – 找不到文件

#!"C:\Perl64\bin\perl.exe" use CGI; use strict; use Spreadsheet::ParseExcel; my $FileName = "C:\excel\Onsite_Report(15).xlsx"; my $parser = Spreadsheet::ParseExcel->new(); my $workbook = $parser->parse($FileName); die $parser->error(), ".\n" if ( !defined $workbook ); # Following block is used to Iterate through all worksheets # in the workbook and print the worksheet content for my $worksheet ( $workbook->worksheets() ) { # Find out the worksheet ranges my ( $row_min, $row_max ) = $worksheet->row_range(); my ( $col_min, $col_max ) = $worksheet->col_range(); for my $row ( $row_min .. $row_max ) { for my $col ( $col_min .. $col_max ) { # Return the cell object at $row and $col my $cell = $worksheet->get_cell( $row, $col ); next unless $cell; print "Row, Col = ($row, $col)\n"; print "Value = ", $cell->value(), "\n"; } } } 

抛出错误File not found ,但path是正确的。 请指教。
EDIT
添加 – warn -e $FileName ? "File exists":"File does not exist"; warn -e $FileName ? "File exists":"File does not exist";
ERROR

 Unrecognized escape \O passed through at perltest2.cgi line 6. File does not exist at perltest2.cgi line 10. File not found. 

 Unrecognized escape \O passed through at perltest2.cgi line 6. 

看起来像你有:

 my $FileName = "C:\excel\Onsite_Report(15).xlsx"; 

Perl在这个string中看到两个转义序列: \e\O \e不会导致错误,因为它是有效的转义:

\ e逃生字符。

但是\O不是。 使用单引号,所以Perl不会内插转义:

 my $FileName = 'C:\excel\Onsite_Report(15).xlsx';