我試圖在我的腳本中編寫更高效的代碼,並且有時一直在實現三元條件運算符。我不明白爲什麼我使用的三元條件運算時在一個循環中獲得一個附加的結果:Perl三元條件運算符
#!/usr/bin/perl
use strict;
use warnings;
my @array = ('Serial = "123"', 'Serial = "456"', 'Serial = "789"');
my ($test1,$test2);
foreach my $a (@array){
!$test1 ? $test1 = $a : $test1 .= " AND " . $a;
}
foreach my $b (@array){
if (!$test2) {
$test2 = $b
} else {
$test2 .= " AND " . $b;
}
}
print "Test1: $test1\n";
print "Test2: $test2\n";
輸出:
~/bin/test.pl
Test1: Serial = "123" AND Serial = "123" AND Serial = "456" AND Serial = "789"
Test2: Serial = "123" AND Serial = "456" AND Serial = "789"
測試1輸出具有附加的「串行=‘123’,我究竟做錯了什麼?
三元條件運算符不會使您的代碼更高效。它使*不易讀*。我甚至不知道在'。='運算符的左側是否有嵌入式賦值的三態條件運算符意味着什麼,更不用說它是否能正常工作。 – 2012-01-31 06:06:06
你爲什麼要以一種奇怪的方式重新實現['join'](http://perldoc.perl.org/functions/join.html)? – 2012-01-31 06:25:57