perl – 如何防止List :: MoreUtils警告关于使用$a和$b只有一次?

前端之家收集整理的这篇文章主要介绍了perl – 如何防止List :: MoreUtils警告关于使用$a和$b只有一次?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
List::MoreUtils模块表示当提供与成对函数一起使用的BLOCK时,您可以使用变量$ a和$ b。例如:
use strict;
use warnings;
use List::MoreUtils qw'pairwise';

my @x = ( 1 ..  5);
my @y = (11 .. 15);
my @sums = pairwise { $a + $b } @x,@y;

但是当我这样做时,我会得到如下警告:

Name "main::b" used only once: possible typo at try.pl line 7.
Name "main::a" used only once: possible typo at try.pl line 7.

有没有一个优雅的方式来处理这个问题?

更新:

参见answer by Ether for perl v5.19.6及以上:问题解决了。

解决方法

取决于你认为优雅。
no warnings qw(once);
our ($a,$b);

这两个之一就足够了。甚至可以很容易地限制其范围。

my @sums = pairwise { no warnings qw(once); $a + $b } @x,@y;
my @sums = pairwise { our $a + our $b } @x,@y;

明确指定包将会抑制警告。如果你主要,

my @sums = pairwise { $::a + $::b } @x,@y;

猜你在找的Perl相关文章