加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 21:20:20 所属栏目:大数据 来源:网络整理
导读: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; 但是当我这样做时
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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读