Text :: Filter.

Basisklasse für Objekte, die Textleitungen lesen und schreiben können
Jetzt downloaden

Text :: Filter. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Johan Vromans
  • Website des Verlags:
  • http://search.cpan.org/~jv/

Text :: Filter. Stichworte


Text :: Filter. Beschreibung

Basisklasse für Objekte, die Textleitungen lesen und schreiben können Text: Der Hauptzweck des Filters besteht darin, die Details herauszuholen, wie Ein- und Ausgabe erfolgen muss. Obwohl in den meisten Fällen die Eingabe von einer Datei stammt, und die Ausgabe wird in eine Datei geschrieben, erweiterte Module erfordern detailliertere Steuerung über den Ein- und Ausgang. Beispielsweise könnte das Modul aus einem anderen Modul aufgerufen werden, in diesem Fall kann die Callee nur einen Teil des Eingangs verarbeiten darf. Oder ein Programm könnte Daten in einem Array vorbereiten und das Modul anrufen, um diese Daten zu verarbeiten, als ob sie aus einer Datei gelesen würde. Der Eingabestrom bietet auch eine Pushback-Funktionalität, um beim Eingang Easy.Text :: Filter als praktischer Eingabe- / Ausgabehandler selbst zu spähen einzunehmen. Zum Beispiel: Verwenden Sie Text :: Filter; mein $ filter = text :: filter -> (input => * stdin, ausgang => * stdout); meine $ line; während (definiert (definiert ($ line = $ filtern-> readline)) {$ filter-> writine ($ line); } Oder, noch einfacher: Verwenden Sie Text :: Filter; Text :: Filter-> RUN (INPUT => * STDIN, Ausgang => * stdout); Seine echte Power-Shows, wenn ein solches Programm in ein Modul zur optimalen Wiederverwendung umgewandelt wird. Wenn das Erstellen eines Moduls, das zum Prozess von Textaktien ist, Es kann aus Text :: Filter abgeleitet werden, zum Beispiel: Paket MyFilter; Verwenden Sie Base 'Text :: Filter'; Die Konstruktor-Methode muss dann die neue () Methode der Text :: Filterklasse aufrufen, um die Basisklasse einzurichten. Dies ist bequem, indem Sie Super :: New () anrufen. In diesem Verfahren müssen ein Hash-Center-Attribute weitergeleitet werden, einige dieser Attribute werden von der Basisklasse-Setup verwendet. Sub New {My $ Class = Schicht; # ... Abrufen Nicht-Attribut-Argumente von @_ ... # Erstellen Sie die Instanz mit den Attributargumenten. Meine $ self = $ class-> super :: neu (@_); Schließlich muss das neu erstellte Objekt in die gewünschte Klasse wieder gesegnet und zurückgegeben werden: # in die gewünschte Klasse wiederholt. segne ($ selbst, $ class); } Beim Erstellen neuer Instanzen für diese Klasse können Attribute eingegeben und ausgegeben, um anzugeben, wie Eingabe und Ausgabe behandelt werden soll. Für diese Attribute können mehrere mögliche Werte geliefert werden. Für die Eingabe: * einen Skalar, der einen Dateinamen enthält. Die benannte Datei wird geöffnet, die Eingabezeilen werden mitgelesen. * Ein Dateigriff (GLOB). Linien werden mitgelesen. * Eine Instanz der Klasse IO :: Datei. Linien werden mitgelesen. * Einen Verweis auf ein Array. Eingangsleitungen werden verschieben () aus dem Array. * Einen Verweis auf einen Skalar. Inhaltszeilen werden aus dem Inhalt des Skalars entnommen (der modifiziert wird). Wenn er erschöpft ist, wird es auf undefiniert eingestellt. * Einen Verweis auf eine anonyme Subroutine. Diese Routine wird aufgerufen, um die nächste Datenzeile zu erhalten. Die Standardeingabe ist die Eingabe mit de operator.für Ausgabe: * Ein Skalar, der einen Dateinamen enthält. Die benannte Datei wird automatisch erstellt, Ausgabereitungen werden mit druck () geschrieben. * Ein Dateigriff (GLOB). Die Zeilen werden mit druck () geschrieben. * Eine Instanz der Klasse IO :: Datei. Die Zeilen werden mit druck () geschrieben. * Einen Verweis auf ein Array. Ausgangsleitungen werden in das Array gedrückt (). Das Array wird ggf. auf () initialisiert. * Einen Verweis auf einen Skalar. Ausgangsleitungen werden an den Skalar angehängt. Der Skalar wird bei Bedarf initialisiert. * Einen Verweis auf eine anonyme Subroutine. Diese Routine wird aufgerufen, um eine Textzeile an das Ziel anzuhängen. Die Standardeinstellung ist das Schreiben der Ausgabe an stdout.additional-Attribute können verwendet werden, um beim Ausführen von Aktionen festzulegen, nachdem die Daten abgerufen wurden, oder vor der Schrift. Zum Beispiel, um Linienendungen beim Eingang zu streifen, und sie beim Ausgang hinzuzufügen. In der Unix-Welt können diese Werkzeuge unter Verwendung einer Technik mit dem Namen Pipelining angekettet werden, wobei der Ausgang eines Filters mit dem Eingang eines anderen Filters verbunden ist. Es werden einige Nicht-Unix-Welten ähnliche Bestimmungen berichtet. Um Perl-Module für die Filterfunktionalität zu erstellen, erscheint zunächst trivial. Öffnen Sie einfach die Eingabedatei, lesen und verarbeiten Sie sie und schreiben Sie die Ausgabe in eine Zieldatei. Aber für wirklich wiederverwendbare Module ist dieser Ansatz zu einfach. Ein wiederverwendbares Modul sollte keine Dateien lesen und schreiben. Einige Quelle (in der Regel eine Datei), die den Inhalt der Inhalte manipulieren und etwas an ein Ziel zurückschreiben (in der Regel eine andere Datei). Dieses Modul kann an sich selbst verwendet werden, ist jedoch am stärksten, wenn es verwendet wird, um Module abzuleiten. Siehe Abschnitt Beispiele für ein umfangreiches Beispiel. Anforderungen: · Perl.


Text :: Filter. Zugehörige Software