Có cách nào tốt hơn để thực hiện việc này không? Tôi đang cố gắng để xây dựng 2 mảng dựa trên giá trị của một đại lượng vô hướng:Điều kiện đẩy tới 1 trong 2 mảng trong Perl
my (@x, @y);
my $r = [$v1, $v2, $v3];
push @x, $r if $s eq 'YES';
push @y, $r if $s ne 'YES';
tôi đã cố gắng sử dụng:
push $s eq 'YES' ? @x : @y, $r;
có và không có dấu ngoặc, nhưng không có đường đi.
Lỗi là:
Type of arg 1 to push must be array (not null operation) at comp_report.pl line 79, near "$r;"
Tôi nghĩ mã của bạn là đúng as_is. Tôi nghĩ rằng sử dụng toán tử * ternary * cho một thứ khác ngoài gán một biến là một thói quen xấu (những gì có thể được thực hiện với toán tử Perl * ternary * đôi khi không thể được sao chép bằng các ngôn ngữ khác để thực hiện nó) –