 |
 |
 |
 |
 |
 |
|
|
 |
 |
 |
![]() |
|
Header |
![]() |
 |
 |
|
![]() |
der verein projekte veranstaltungen hilfestellung tips & tricks fun |
|
 |
Finde uns auf:
|
|
Perl kann Daten aus Dateien, von der Tastatur, Message-Queues, Pipes oder von Sockets lesen. Diese Liste ist beliebig fortsetzbar, da über Module auch Daten von z.B. Datenbanken und News-Servern zu lesen sind.
Perl verfügt über die vordefinierten Ein-/Ausgabekanäle STDIN, STDOUT und STDERR. Um einen Wert von der Tastatur (STDIN) zu lesen kann folgendes geschrieben werden:
<typocode>
$a = <STDIN>;
</typocode>
Die eingegebenen Zeichen bis zu einem Zeilenende oder CTRL+D werden der Variablen $a zugewiesen. Die Kurzform wäre:
<typocode>
$a = <>;
</typocode>
Das folgende Beispiel öffnet eine Datei, liest jede Zeile ein und gibt sie auf den Bildschirm aus.
<typocode>
open(DH, "myfile");
while (<DH>)
{
print;
}
</typocode>
Perl liest eine Zeile der zum Dateihandle DH gehörenden Datei. Die Zeilen werden nicht explizit einer Variablen zugewiesen. Die Anschließende print-Anweisung weiß aber trotzdem was sie ausgeben soll!
Das liegt daran, dass Perl die gelesenen Daten, wenn keine explizite Zuweisung stattfindet, der Variablen $_ zuweist.
Falls man doch lieber mit Variablen arbeiten möchte kann man entweder explizit eine Zuweisung vornehmen.
<typocode>
open(DH, "myfile");
while ($a = <DH>)
{
print $a;
print $_;
}
</typocode>
Das Programm liefert nicht jede Zeile doppelt! Da die Eingabe der Variablen $a zugewiesen wird, ist $_ leer!
Wenn eine bestimmte Menge Bytes von einem Dateideskriptor gelesen werden soll, dann ist read die richtige Funktion.
<typocode>
open(DH, "myfile");
read DH, $a, 10;
</typocode>
Das Beispiel liest 10 Bytes aus der zuvor geöffneten Datei und weist sie der Variablen $a zu.
Die Ausgabe einer bestimmten Menge von Zeichen ist einfach über print zu realisieren.
|
|
 |
 |
 |
Copyright © 2004-2017 |