我有一个很多零和'1'的字符串,但我只想从字符串的零值。 所以,我使用拆分功能拆分'1',但它似乎会产生数组中的undef或空字符串。 因此,我尝试使用foreach扫描每个数组元素,并比较是否有空字符串,我认为是“undef”将被忽略。作为回报,那些非空字符串中的字符串将不会被忽略,并将被放入另一个变量中。这些问题看起来好像不能识别我的“undef”变量。如何摆脱perl中数组中的空字符串?
或 还有另一种更好的方法来扫描字符串,以便取消字符串中'0'的数量?
请帮忙解决这个问题。 这个编码:
#!/usr/bin/perl
use strict;
use warnings;
my $data = '111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000011111
';
my @values = split('1', $data);
my $zero = "0";
foreach my $val (@values)
{
if (!defined$val)
{
$zero= $val;
}
}
print "$zero\n";
exit 0;
非常感谢。
问候, 尼基
您也可以使用[goatse-operator](http://www.catonmat.net/blog/secret-perl-operators/#goatse)缩短它:'my $ count =()= $数据=〜米/ 0 /克;' – simbabque
@simbabque:感谢分享.. – Guru
感谢分享..这真的解决了这个问题。很高兴你的帮助:D – Nick