我想将字符串转换为数组。我有这样的事情:
my $binvalue = 10101010101010101010101010101010;
而且,我想把它放在一个数组中......
my @array = (1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0)
我想这样做是为了能够索引任何值并更改它。就像最高有效位是 1 一样,将其更改为 0。
我想将字符串转换为数组。我有这样的事情:
my $binvalue = 10101010101010101010101010101010;
而且,我想把它放在一个数组中......
my @array = (1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0)
我想这样做是为了能够索引任何值并更改它。就像最高有效位是 1 一样,将其更改为 0。
尝试这个。注意“0b”来存储二进制数。
my $binvalue = 0b10101010101010101010101010101010;
print "\$binvalue as decimal: $binvalue\n";
my @binvalues = split //, sprintf '%b', $binvalue;
print "\@binvalues: @binvalues\n";
根据拆分 perldoc(请参阅 kjprice 的答案),您想要的应该是
my @array = split('', $binvalue, x)
其中 x 是 $binvalue 的长度,所以:
my @array = split('', $binvalue, length($binvalue))
From the split perldoc:
However, this:
print join(':', split('', 'abc')), "\n";
uses empty string matches as separators to produce the output 'a:b:c'; thus, the empty string may be used to split EXPR into a list of its component characters.