perl - Perl 无法识别文件夹
问题描述
Perl 没有检测到现有文件夹,文件夹已经存在但它仍然没有检测到。
下面给出的是简单的代码
my $dir = '/net/prihpwnfs02';
if (-e $dir and -d $dir) {print "GOOD :)\n";} else {print "BAD :(\n";}
解决方案
你没有检查你得到了什么错误。
my $dir_qfn = '/net/prihpwnfs02';
defined( my $is_dir = -d $dir_qfn )
or die("Can't stat \"$dir_qfn\": $!\n");
print $is_dir ? "GOOD :)\n" : "BAD :(\n";
或者
my $dir_qfn = '/net/prihpwnfs02';
stat($dir_qfn)
or die("Can't stat \"$dir_qfn\": $!\n");
print -d _ ? "GOOD :)\n" : "BAD :(\n";
如果你不想死,如果它不存在,
my $dir_qfn = '/net/prihpwnfs02';
stat($dir_qfn)
or $!{ENOENT} or die("Can't stat \"$dir_qfn\": $!\n");
print -d _ ? "GOOD :)\n" : "BAD :(\n";
消息“ Value too large for defined data type ”与错误相关联EOVERFLOW
。( stat
2) 手册页定义了它何时返回此错误。在我的系统上,它显示以下内容:
[参数] 指的是一个文件,其大小、inode 数或块数不能分别用类型
off_t
、ino_t
或表示blkcnt_t
。例如,当在 32 位平台上编译的应用程序没有-D_FILE_OFFSET_BITS=64
调用stat()
大小超过(1<<31)-1
字节的文件时,可能会发生此错误。
简而言之,您使用的是过时的 Perl 版本这一事实正在追赶您。
推荐阅读
- javascript - 如何使我的重置功能在我的输入元素上工作?
- c++ - 一个.exe应用程序在windows10中创建新模块时抛出错误,但在windows7中可以正常工作?
- laravel - 如何解决 Heroku 上的 DNSvalidation 错误
- actions-on-google - 在 Nest 家庭集线器和基于电话的 Google 助理逻辑中发现“帮助”错误
- jquery - 如果选择了值或两者的组合,如何选中和取消选中框?
- vue.js - 自动化 Vue.js 应用程序测试
- c# - 权限 - 使用 unzip 命令解压缩的文件不包含任何权限设置
- spss - 从 F 到似然比检验的广义线性混合模型 SPSS
- html - 为什么我的 HTML 部分没有相互对齐?
- python - 当“交互”为 1 时,如何创建一个插入分组列“ID”(及时)的单元格值的新列