Was in Perl bedeutet $\=$/;
?
Sets $\
auf den Wert von $/
.
$/
definiert die Endung der Leitung für readline
(<>
). Der Standardwert ist ein Zeilenvorschub (U + 000A).
$\
ist an den Ausgang von jedem print
angehängt. Der Standardwert ist die leere Zeichenfolge.
Also, vorausgesetzt $/
hatte sich nicht verändert worden ist, setzt es $\
-Feed-Linie, die print
wirken wie say
macht.
Wer kann dieses Programm Zeile für Zeile dekodieren?
- Weltweit machen
print
wirken wie say
.
- Lesen Sie eine Zeile von
ARGV
.
- Für eine Anzahl von Malen gleich der Anzahl Lese,
- eine Linie von
ARGV
lesen.
- Verwenden Sie
s/[aeiou]//gi
, um die Anzahl der Vokale zu zählen.
- Drucken Sie das Ergebnis.
Im skalaren Kontext s///g
gibt die Anzahl der Spiele/Ersatz. 0+
zwingt skalaren Kontext.
By the way, tr/aeiouAEIOU//
wäre schneller als 0+s/[aeiou]//gi
, und nicht mehr. Es ist auch zerstörungsfrei.
Das ist ein Mißbrauch von 'map' und sollte mit einer gewöhnlichen' for' Schleife gemacht werden: 'print <> = ~ tr/aeiouAEIOU //," \ n "für 1 .. <>'. Ich weiß nicht, ob das leichter zu verstehen ist. – Borodin