Perl 在模式匹配中使用未初始化值(m/)
我试图在浏览器中点击我的perl脚本,它给出了内部服务器错误 服务器遇到内部错误或配置错误,无法正常运行 无法完成您的请求 请与服务器管理员联系,root@localhost通知 告诉他们错误发生的时间,以及您可能做的任何事情 这可能是导致错误的原因 有关此错误的详细信息,请参阅服务器错误 日志 当我在该行检查服务器日志时,该行是 如果($content1=~m/IP/g)Perl 在模式匹配中使用未初始化值(m/),perl,Perl,我试图在浏览器中点击我的perl脚本,它给出了内部服务器错误 服务器遇到内部错误或配置错误,无法正常运行 无法完成您的请求 请与服务器管理员联系,root@localhost通知 告诉他们错误发生的时间,以及您可能做的任何事情 这可能是导致错误的原因 有关此错误的详细信息,请参阅服务器错误 日志 当我在该行检查服务器日志时,该行是 如果($content1=~m/IP/g) { $value1=位置($content1); } 请帮助为了消除该警告,您可以简单地: if ( $content1
{
$value1=位置($content1);
}
请帮助为了消除该警告,您可以简单地:
if ( $content1 and $content1 =~ m/IP/g) { $value1=pos($content1); }
但这是一个警告,不会导致标题中出现
内部服务器错误
,我假设您有一条错误消息
Use of uninitialized value in pattern match
某处。你应该把这个放在你的问题里
问题是在尝试模式匹配时,
$content1
是undef
。我们无法猜测原因,除非您显示更多代码。如果手动执行,您的脚本运行正常吗?发布您的脚本,导致此错误的行号不是主要用于s/
用途的/g
?您尝试过删除它吗?您确定日志中没有其他错误吗?这个警告只是一个警告;它不会停止脚本的执行。@KarthikT:/g
是多余的,但它不会导致此代码出现任何问题。@Borodin,实际上,它可能会导致问题。不是他看到的那种。-1在没有任何迹象表明没有错误的情况下压制警告。(更不用说,这根本不能回答OP的问题。)嗯,if
测试$content
是否包含IP
。如果它未定义
它肯定不包含它。未定义的原因不在发布代码的范围内,它可能表示错误,或者可能是预期的行为。这可能就是Perl返回警告的原因。确切地说,它可能指示错误。这个错误应该得到处理;指示错误的消息不应被沉默。对于您声称超出范围的内容,您的代码几乎肯定是一个糟糕的解决方案。你凭什么认为你的假设比我的好我没有做任何假设;我只是指出你做了一个(而且是一个非常糟糕的)。