IO :: Insitu.

IO :: Insitu ist ein Perl-Modul, um Clobbering-Dateien zu vermeiden, die für die Ein- und Ausgabe geöffnet werden.
Jetzt downloaden

IO :: Insitu. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Damian Conway
  • Website des Verlags:
  • http://search.cpan.org/~dconway/

IO :: Insitu. Stichworte


IO :: Insitu. Beschreibung

IO :: Insitu ist ein Perl-Modul, um Clobbering-Dateien zu vermeiden, die für die Ein- und Ausgabe geöffnet werden. IO :: Insitu ist ein Perl-Modul, um Clobbering-Dateien zu vermeiden, die sowohl für die Ein- als auch für den Ausgang eröffnet werden. Verwenden Sie IO :: Insitu; meine ($ in, $ out) = open_rw ($ Infins_name, $ outfile_name); für meine $ line () {$ line = ~ s / foo / bar / g; drucken {$ out} $ line; . Das Programm öffnet in der Regel die Datei für die Eingabe, öffnete es erneut für den Ausgang (an welchen Punkt wird die Datei auf Null-Länge abgeschnitten), und dann versuchen Sie, in der ersten Zeile der nun leeren Datei zu lesen: # Öffnen Sie beide FileHandles ... verwenden Sie tödliche qw (offen); Öffnen Sie meine $ SRC, '', $ Destination_File; # Lesen, Prozess- und Ausgabedaten, Zeilen-by-line ... während (meine $ line = <$ src>) {drucken {$ dest} Transformation ($ line); } Dadurch führt dies nicht nur die angeforderte Umwandlung in der Datei aus, sondern zerstört auch die Originaldaten. Glücklicherweise ist dieses Problem extrem leicht zu vermeiden: Stellen Sie einfach sicher, dass Sie die Ausgabedatei nicht linken, bevor Sie sie öffnen: # Öffnen Sie beide FileHandles ... verwenden Sie tödliche qw (offen); Öffnen Sie meine $ SRC, '', $ Destination_File; # Lesen, Prozess- und Ausgabedaten, Zeilen-by-line ... während (meine $ line =) {drucken {$ dest} transform ($ line); } Wenn die Eingabe- und Ausgabedateien unterschiedlich sind, entfernt die Ausgabedatei nicht lediglich eine Datei, die ohnehin umgeschrieben wurde. Dann stellt die zweite Open einfach die Ausgabedatei wieder her, die zum Schreiben bereit ist. Wenn die beiden Dateinamen tatsächlich auf eine einzige In-Situ-Datei beziehen, wodurch der AusgabedialName entlastet wird, entfernt den Dateinamen diesen Dateinamen aus dem Verzeichnis, entnimmt jedoch nicht die Datei selbst aus dem Dateisystem . Die Datei ist bereits über den FileHandle in $ Input geöffnet, sodass das Dateisystem die nicht verknüpfte Datei erhalten, bis diese eingegebene Dateihandle geschlossen ist. Die zweite Öffnung erstellt dann eine neue Version der in-situ-Datei, die zum Schreiben bereit ist. Die einzige Begrenzung dieser Technik ist, dass er den Inode einer beliebigen In-Situ-Datei ändert. Das kann ein Problem sein, wenn die Datei angehenden Aliase verfügt, oder wenn andere Anwendungen die Datei mit seiner Intennummer identifizieren. Wenn eine dieser Situationen möglich ist, können Sie die In-situ-Datei-Inode mithilfe der von diesem Modul exportierten Open_rw () aufrechterhalten: # Öffnen Sie beide FileHandles ... Verwenden Sie IO :: Insitu; meine ($ src, $ dest) = open_rw ($ surce_file, $ destination_file); # Lesen, Prozess- und Ausgabedaten, Zeilen-by-line ... während (meine $ line =) {drucken {$ dest} transform ($ line); } Anforderungen: · Perl.


IO :: Insitu. Zugehörige Software

libgtk-java.

Java-Gnome ist ein Satz von Java-Bindungen für GNOME- und GTK-Bibliotheken, sodass GNOME-Anwendungen in Java geschrieben werden können. ...

113

Herunterladen