我希望你能帮助我,我找不到我的代码停止的原因。我会感谢每一次改进,我必须使用 Perl,而我以前从未这样做过!我还必须在 Windows 文件系统上工作。
错误:
无法打开文件 '' 在 C:\Users\schacherl\Documents\perl\tester.pl 第 29 行第 1 行没有这样的文件或目录。
仅供参考:FILElog.txt 文件包含子文件夹,如
“vps_bayern_justiz_15027148042584275712825768716427”
EDALOG 包含指向 EDA 文件的完全限定链接
"W:\EGVP\manuelle Nachrichten\heruntergeladene_DONE\EGVP_GP114503661816195610088017045919978\attachments\Staßfurt_AIA100.eda"
在程序上方的这个确切文件处死亡。到目前为止,对于所有其他人来说,它似乎都可以工作,只是那些看起来无法处理的“Staßfurt”文件。如果我像第一个一样用 UTF-8 对其他文件进行编码,我会得到很多
UTF-8 "\x84" 不映射到 C:\Users\zhengphor\Documents\perl\tester.pl 第 32 行第 4 行的 Unicode。
UTF-8 "\x81" 不映射到 C:\Users\zhengpor\Documents\perl\tester.pl 第 32 行第 4 行的 Unicode。
如果我没有 Staßfurt 文件,它可以正常工作。这只是发生错误的部分,我已经排除了 $returner 变量的整个处理。
我真的很感激!我找不到 Staßfurt 文件出现此错误的原因。
#!/usr/local/bin/perl -w -l
use Switch;
use Data::Dumper;
`chcp 65001`;
sub getAusgabe{
`dir "W:\\EGVP\\manuelle Nachrichten\\heruntergeladene\\_DONE\\ /AD /B 1>FILElog.txt`;
print 'written file log';
my $filename = 'FILElog.txt';
open(my $fh, '<:encoding(UTF-8)', $filename)
or die "Could not open file '$filename' $!";
while (my $row = <$fh>) {
chomp $row;
if($row ne 'DONE'){
`dir "W:\\EGVP\\manuelle Nachrichten\\heruntergeladene\\_DONE\\$row\\*.eda" /S /B 1>EDAlog.txt`;
print 'written eda log';
my $filename = 'EDAlog.txt';
open(my $fh1, $filename)
or die "Could not open file '$filename' $!";
while(my $row2 = <$fh1>){
chomp $row2;
print 'Datei:'. $row2;
open(my $fh2, $row2)
or die "Could not open file '$$row2' $!";
print 'ich bin drin';
while (my $rowFile = <$fh2>) {
$returner .= $rowFile;
print 'hier könnte ihr text stehen';
}
}
}
}
print 'ich habe fertig';
return $returner;
}
$ausgabe1 = getAusgabe;