Mik*_*ike 3 apache variables perl warnings
我正在清理生产版本的Perl代码,并在Apache错误日志中遇到了一个奇怪的警告.
它说:
[Thu Nov 5 15:19:02 2009] Clouds.pm: Use of uninitialized value $name in substitution (s///) at /home/mike/workspace/olefa/mod-bin/OSA/Clouds.pm line 404.
相关代码在这里:
my $name = shift @_;
my $name_options = shift @_;
$name_options = $name_options eq 'unique' ? 'u'
: $name_options eq 'overwrite' ? 'o'
: $name_options eq 'enumerate' ? 'e'
: $name_options =~ m/^(?:u|o|e)$/ ? $name_options
: q();
if ($name_options ne 'e') {
$name =~ s/ /_/g;
}
Run Code Online (Sandbox Code Playgroud)
那么,为什么未初始化变量的警告明显初始化?
Cli*_*rce 12
警告只是意味着$name从未填充过值,并且您尝试对其执行替换操作(s///).变量的默认值是undefined(undef).
回顾一下你的脚本,$name从中获取它的价值@_.这意味着要么@_是空的,要么是第一个值为undef.
| 归档时间: |
|
| 查看次数: |
9809 次 |
| 最近记录: |