我有一個很多零和'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