下面的代码直接从 perldoc.perl.org 上的当前 perlsyn 页面复制。
[我已经根据需要添加了初始化和声明以使其运行(并且它按预期工作),但重点是“when”关键字]
Perl 5.24 抱怨“何时”是实验性的。
很公平,但我不想每次使用关键字时都看到这个。
没有警告 qw(experimental::when) 不起作用 - “未知警告类别...”
我也尝试过“switch”作为类别
是否有其他方法可以抑制此警告(除了一般禁用警告之外)?
use v5.14;
for ($var) {
$abc = 1 when /^abc/;
$def = 1 when /^def/;
$xyz = 1 when /^xyz/;
default { $nothing = 1 }
}
您可以通过以下方式启用此构造而不发出警告
use experimental 'switch';
或者仅仅通过以下方式禁用“实验”警告类别
no warnings 'experimental::smartmatch';
(参见可用警告类别的完整列表perldoc warnings).
但请注意 smartmatch,given
, and when
结构被认为从根本上被破坏,并且正在被删除/重新设计。当您在其他 Perl 版本上运行代码时,仅消除警告就会破坏您的代码。
相反,请更愿意明确地拼写出此代码:
for ($var) {
if (/^abc/) { $abc = 1 }
elsif (/^def/) { $def = 1 }
elsif (/^xyz/) { $xyz = 1 }
else { $nothing = 1 }
}
是的,它更丑陋,但它也适用于所有价值观$var
以及所有 Perl5 版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)