Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 我的脚本抛出一个无效的DIRhandle错误_Perl - Fatal编程技术网

Perl 我的脚本抛出一个无效的DIRhandle错误

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的状态。这将立即告诉您目录句柄无效的原

我的问题是,出于某种原因,我在运行脚本时遇到两个错误:

readdir()试图在电子表格.pl第206行的无效dirhandle DIR上执行操作。
尝试在电子表格.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/": $!};