Thread Perl schleife per tastendruck beenden
(15 answers)
Opened by DonPadrio at 2014-02-14 12:24
Hi,
Dein Skript liest mit my @data = <STDIN>; von der Standardeingabe STDIN alle eingegebenen Textzeilen in ein Array (jeweils mitsamt dem Linefeed, der durch das Drücken von RETURN erzeugt wird). Wenn Du eine leere Zeile eingibst, ergibt das also einen String, der nur aus dem Linefeed besteht. Wenn Du die Eingabe beenden willst, musst Du EOF eingeben (Ctrl-D bei Linux, Ctrl-Z bei Windows). Das üblichere Vorgehen wäre ein zeilenweises Einlesen in einer Schleife, man schneidet mit chomp() den Linefeed idR ab und verlässt die Schleife beim Leerstring mit last(). Code (perl): (dl
)
1 2 3 4 5 6 my @data; while ( my $line = <STDIN> ) { chomp $line; last if $line eq ''; # nicht: ... if ! $line, da '0' zu FALSE evaluiert push @data, $line; } Edit: Abbruchbedingung geändert wegen berechtigtem Einwand von Muffi s.u. Last edited: 2014-02-17 14:50:38 +0100 (CET) Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"
|