概念:库放在我的public_html文件夹中,它的目的是解码字符串。但是如果该库不存在,则停止错误。以前建议的方式是:
eval("require x.pm");
if ($@) {
print "The library is missing";
}
else{
BEGIN{
eval{"use x"};
}
1123131323fsdfsfsdfsfgdfgdfgghfghfghfgheterterter ...
no x;
}
如果库存在,解码工作正常,一切都是“Hunky Dory”。在理论中...如果文件不存在,顶部循环应该打印错误...除了所有发生的事情,我得到一个错误500,因为脚本看到加密的字符串,并确定它不是一个有效的程序。
想知道是不是“$ @”所以我用旗帜试了一下
$set=0;
$set=1 if eval("require x.pm");
if ($set eq 0){
...
..
同样的事情。尝试将代码放入字符串中:
$_="1123131323fsdfsfsdfsfgdfgdfgghfghfghfgheterterter ..."
这没有帮助。所以,任何人都可以对我做错的事情有所了解吗?
答案 0 :(得分:-1)
看起来你不会以任何方式退出。通过eval()
,这是使用exit()
执行所需操作的稳定方式。如果$ok
失败,require()
将不会设置为真值。
my $ok = eval {require 'nofile.pm'; 1};
if (! $ok){
print "module not found\n";
exit;
}