我無法使用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',...)來比較字符串。 –