我无法使用perl splice()方法。贝娄你会看到我首先确定了我正在查找的两个字符串的索引,然后使用索引执行splice()以获得所需的数组。Perl - splice()问题
我的代码如下:
my @a = qw(foo bar bazz elements in between hello bazz johnny bl aba);
my $z = 0;
for (my $i = 0; $i < @a; $i++)
{
next unless $a[$i] =~ /bazz/;
if($z eq 0)
{
$z++;
$first = $i;
}
else
{
$second = $i;
}
my @b = splice(@a,$first,$second);
print Dumper(@b);
}
和打印的结果如下:
$VAR1 = 'bazz';
$VAR2 = 'elements';
$VAR3 = 'in';
$VAR4 = 'between';
$VAR5 = 'hello';
$VAR6 = 'bazz';
$VAR7 = 'johnny';
我的印象是,接头采用块在给定的范围之间,当然包括在内。我不明白为什么元素'约翰尼'会在那里。这个名单不应该停在第二个'bazz'吗?
谢谢你在这个问题上的任何指针。
你应该传递给自卸车的引用,例如:'打印翻斗车\ @b;'。 – squiguy
当你使用它时,Perl不会抱怨'$ second'是'undef'吗?如果你有'严格使用'使用警告;'如你所愿。此外,Perl使用数学比较符号('==','> =',...)来比较数字,并使用字母比较符号('eq','ge',...)来比较字符串。 –