8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

检查文件是否存在且在@INC中是否要求

iamnazeef 1月前

26 0

我正在编写一个脚本,它将接受用户的输入以加载配置/数据文件。我的第一个想法是(假设文件名在 $file 中):if (-e $file) { my $data = do $file; ...

我正在编写一个脚本,它将接受用户的输入以加载配置/数据文件。

我的第一个想法是(假设文件名为 $file ):

if (-e $file) {
    my $data = do $file;
    die "Failed to parse data\n" if $@;
} else {
    die "File does not exist\n";
}

这在一定程度上是有效的 — 如果文件不存在,它就会因此而终止。但是,如果文件存在,并且不是完整路径(以 开头 / ),而是相对于当前目录,它就会终止,并发出一条来自 Perl 的消息:

[…] '.' 不再存在于 @INC 中;您的意思是 […]

这是为什么?我不想添加 . @INC 但我很惊讶这并没有随着我的消息而消失。难道它不应该让 do 和 set 失败吗 $@

如何测试文件是否存在且在 的范围内 @INC ?或者,也许有另一种解决方案,例如可靠地测试当前目录中的路径,并在传递给 之前使其成为完整路径 do .

帖子版权声明 1、本帖标题:检查文件是否存在且在@INC中是否要求
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由iamnazeef在本站《perl》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 您确实不应该将配置数据保存为 Perl 代码。/// 为什么您希望将配置数据保存在 Perl 模块目录中?

返回
作者最近主题: