我正在尝试使用拼接功能在特定阵列位置插入'1'的脚本,打印它然后在同一位置插入'0'。我到目前为止的逻辑是:
my @array = (0) x 4096;
for ($j=0;$j<3;$j++) {
splice ( @array, $array[$j],1,1);
print "$j---$array[$j]\n";
splice ( @array, $array[$j],1,0 );
}
有了这个逻辑,我得到的输出是: 0 --- 1 1 --- 0 2 --- 0
更确切地说,我期望的逻辑输出是: 0 --- 1 1 - 1 2 --- 1
我在这里正确使用拼接功能吗?
答案 0 :(得分:1)
我认为你不需要splice
做你想做的事。只需要一个简单的任务:
use warnings;
use strict;
my @array = (0) x 4096;
for (my $j = 0 ; $j < 3 ; $j++ ) {
$array[$j] = 1;
print "$j---$array[$j]\n";
$array[$j] = 0;
}
__END__
0---1
1---1
2---1
参考:
perldoc -f splice
答案 1 :(得分:0)
splice
希望索引不是元素:
splice ( @array, $j,1,1);
在你的情况下,你传递0
(元素值)作为索引,所以它在开头插入一个元素。但是,使用单个元素替换单个元素最好通过简单的赋值来完成。