【发布时间】:2017-02-27 14:40:00
【问题描述】:
我在我的 Perl 脚本中使用 strict 和 warning,以便在我使用未声明的变量时收到通知。因此,解释器将警告$foo 未在以下脚本中声明:
#!/usr/bin/perl
use warnings;
use strict;
$foo = 'bar';
print ($foo);
但是,如果我在另一个命名空间中使用未声明的变量,我不会收到警告。以下 scriptlet 运行时不会发出任何警告。
#!/usr/bin/perl
use warnings;
use strict;
$BAR::foo = 'bar';
print ($BAR::foo);
为什么会有这种差异?
由于我已经浪费了相当长的时间来弄清楚这个问题,尽管在更大的上下文中,我想知道是否有可能让 Perl 警告我在其他命名空间中使用未声明的变量。
【问题讨论】: