我正在尝试使用Config :: Simple模块在perl中读取一个简单的配置文件。此配置文件中的一行是一个数组,如下所示:
# EXTENSIONS TO TRANSFER
extensions = "\.mpg\$","\.txt\$"
我可以成功读取此数组(并验证数据),如下所示:
@ext = $cfg->param("extensions");
print @ext;
.mpg$ .txt$
如果我尝试进行一些基本的错误检查,我会遇到问题,具体来说,如果配置文件中不存在该参数,就会死掉。但是,如果它成功解析数组,它只打印出内存位置而不是实际内容:
@ext = $cfg->param("extensions") || die "Failed to read 'extensions'";
print @ext;
ARRAY(0x9403788)
为什么会发生这种情况,我该怎么做才能解决这个问题?
答案 0 :(得分:2)
当您清楚划分优先权时会发生什么?
(@ext = $cfg->param("extensions")) || die "Failed to read 'extensions'";
print @ext;
或者使用较低的优先级or
工作吗?
@ext = $cfg->param("extensions") or die "Failed to read 'extensions'";
print @ext;
有关详细信息,请参阅Perl Idioms Explained - && and || "Short Circuit" operators。