Trong Perl, người ta thường có thể tránh sử dụng các khối điều khiển, như thế này:biểu foreach ngắn gọn trong một dòng
print "$_\n" foreach(@files);
thay vì:
foreach(@files){
print "$_\n";
}
làm việc như thế cú pháp này trong những điều sau đây, nhiều trường hợp phức tạp:
die("Not a file: $_") unless -f $_ foreach(@files);
Nó mang lại cho tôi một lỗi cú pháp. Tôi không cố gắng viết mã obfuscated, nó chỉ là một phần không quan trọng trong chương trình, và vì vậy tôi muốn thể hiện nó một cách ngắn gọn nhất có thể.
TRẢ LỜI tóm tắt:
tôi có thể chấp nhận chỉ có một câu trả lời là câu trả lời được chấp nhận, nhưng tôi thích những người sau đây từ Chris và Jon tốt nhất.
một này sử dụng foreach
như tôi dự định, nhưng nếu không có sự syntax error
:
-f or die "Not a file: $_" foreach @files;
Và một Sau đây là ít nhất là tốt. Tôi thích điều đó die
là ở phần đầu của báo cáo kết quả bởi vì đó là những gì chú ý của người đọc nên hướng vào:
die("Not a file: $_") for grep {!-f} @files;
Tôi đồng ý rằng 'die()' là tốt nhất ở đầu dòng, nhưng trong một mạch ngắn, mạch ngắn chỉ có thể đọc được với tôi. –
Bạn chỉ chơi gôn? Nếu không, tại sao nó quan trọng để có nó trên một dòng? –