此代码触发投诉如下:
- #!/usr/bin/perl
- use strict;
- use warnings;
- my $s = "aaa bbb";
- my $num_of_item = split(/\s+/,$s) ;
- print $num_of_item;
解决方法
您在标量上下文中使用拆分,在标量上下文中,它拆分为@_数组。 Perl警告你,你可能刚刚破了@_。 (有关详细信息,请参阅
perldoc split)
- my @items = split(/\s+/,$s);
- my $num_of_item = @items;
要么
- my $num_of_item = () = split /\s+/,$s,-1;
注意:split()的三参数形式是必要的,因为在没有指定限制的情况下,split只会拆分一部分(比需要的多一个分配)。