Perl 我的脚本抛出一个无效的DIRhandle错误
我的问题是,出于某种原因,我在运行脚本时遇到两个错误: readdir()试图在电子表格.pl第206行的无效dirhandle DIR上执行操作。Perl 我的脚本抛出一个无效的DIRhandle错误,perl,Perl,我的问题是,出于某种原因,我在运行脚本时遇到两个错误: readdir()试图在电子表格.pl第206行的无效dirhandle DIR上执行操作。 尝试在电子表格.pl第254行的无效dirhandle DIR上使用closedir() 我的代码 第206行和第254行为 my @files = readdir(DH); 及 在此之后opendir opendir(DH, "\/Judging Card\/"); 您应该做的第一件事是检查opendir的状态。这将立即告诉您目录句柄无效的原
尝试在电子表格.pl第254行的无效dirhandle DIR上使用closedir() 我的代码 第206行和第254行为
my @files = readdir(DH);
及
在此之后opendir
opendir(DH, "\/Judging Card\/");
您应该做的第一件事是检查opendir
的状态。这将立即告诉您目录句柄无效的原因
像这样
opendir DH, '/Judging Card/' or die qq{Unable to open directory "/Judging Card/": $!};
让我烦恼的第一件事是,
判断卡
看起来不像根目录名,但通过在它前面加一个斜杠(不需要在引号中转义斜杠),你就可以说它位于归档系统的根目录。但是来自该或die
的错误消息将告诉您问题所在请不要只转储错误消息和全部代码,并告诉我们继续处理。你真是太粗鲁了,除了别的以外,你什么都没有。请看一看,特别是,我道歉。下次我肯定会做得更好。我不清楚你为什么修改问题中的代码以匹配我的解决方案?当DIR
从一开始就不存在时,为什么要将closedir(DH)
更改为closedir(DIR)
?我更新了我的代码以尝试修复错误,但我仍然收到相同的错误。还更新了我线程中的代码,这让人难以置信。如果opendir
没有抛出错误,则同一句柄上的readdir
将成功,但在最特殊的情况下除外。您确定正在运行包含所做更改的文件吗?
opendir(DH, "\/Judging Card\/");
opendir DH, '/Judging Card/' or die qq{Unable to open directory "/Judging Card/": $!};