在Perl中将字符串转换为数组

时间:2013-07-16 16:26:00

标签: perl

我想将字符串转换为数组。我有这样的事情:

my $binvalue = 10101010101010101010101010101010;

而且,我希望在阵列中拥有它......

my @array = (1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0)

我希望这样做能够索引任何值并进行更改。 如果最高有效位为1,则将其更改为0.

3 个答案:

答案 0 :(得分:3)

试试这个。注意“0b”存储二进制数。

my $binvalue = 0b10101010101010101010101010101010;
print "\$binvalue as decimal: $binvalue\n";

my @binvalues = split //, sprintf '%b', $binvalue;
print "\@binvalues: @binvalues\n";

答案 1 :(得分:2)

来自split perldoc

  

但是,这个:

print join(':', split('', 'abc')), "\n";
     

使用空字符串匹配作为分隔符来生成输出'a:b:c';   因此,空字符串可用于将EXPR分割成其列表   组件字符。

答案 2 :(得分:2)

根据拆分perldoc(见kjprice的回答)你想要的应该是什么样的

my @array = split('', $binvalue, x)

其中x是$ binvalue的长度,所以:

my @array = split('', $binvalue, length($binvalue))