|
my $handler = $handler{$handle}; $handler->{ibuf} .= $buffer; if ($handler->{ibuf} =~ /^(.*\n)(.*)/s) { if ($1 =~ /^\r?\n$/) { &{$handler->{readline}}($handle, ""); } else { foreach my $line (split /\r?\n/, $1) { &{$handler->{readline}}($handle, $line); } } $handler->{ibuf} = $2; } |
Da die Eingabe beliebig fragmentiert sein kann,
können unvollständige Zeilen eintreffen oder mehrere
Zeilen auf einmal.
| |
Deswegen wird das Eingelesene (abgelegt in $buffer)
zuerst an ibuf gehängt und anschließend wird
überprüft, ob mindestens eine vollständige Zeile damit
vorliegt. Wenn ja, werden alle vollständigen Zeilen
einzeln an den Bearbeiter, der bei readline eingetragen ist,
weitergeleitet.
|
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003 |