W Perl, można często uniknąć stosując bloki sterujące, tak:Zwięzłe wyrażenie foreach w jednej linii
print "$_\n" foreach(@files);
zamiast:
foreach(@files){
print "$_\n";
}
Jak to działa składni Poniżej więcej złożony przypadek:
die("Not a file: $_") unless -f $_ foreach(@files);
Daje mi błąd składniowy. Nie próbuję pisać zaciemnionego kodu, jest to po prostu nieistotna część programu, dlatego chcę go wyrazić tak zwięźle, jak to tylko możliwe.
zestawione ODPOWIEDZI:
mogę przyjąć tylko jedną odpowiedź jako zaakceptowany odpowiedź, ale lubię następujące te z Chris i Jon najlepiej.
Ten wykorzystuje foreach
jak zamierzałem, ale bez syntax error
:
-f or die "Not a file: $_" foreach @files;
A po nich jest co najmniej tak samo dobre. Lubię to die
jest na początku instrukcji, ponieważ to właśnie uwagę czytelnika powinno być skierowane:
die("Not a file: $_") for grep {!-f} @files;
Zgadzam się, że 'die()' jest najlepszy na początku linii, ale w szczypie, logika zwarcia jest dla mnie tak samo czytelna. –
Po prostu grałeś w golfa? W przeciwnym razie, dlaczego ważne jest, aby mieć go na jednej linii? –