Schlürf
Weil Skripte oft mit den gesamten Daten einer Datei arbeiten, soll es in Perl 6 künftig eine »slurp()«-Funktion geben. Sysadm::Install bietet schon heute eine entsprechende Funktion, zusammen mit dem Gegenstück »blurt()«, das gespeicherte Daten in einem Rutsch wieder in eine Datei zurückschreibt.
Ein Beispiel: Um Linux dazu zu bewegen, nach dem Booten nicht mehr automatisch in den grafischen X11-Modus zu wechseln, sondern den Login im Textmodus auszuführen, muss der Admin in »/etc/inittab« eine Zeile ändern. In »id:5:initdefault:« ersetzt er die »5« durch eine »3«. Mit »slurp()« und »blurt()« geht das ganz einfach, wie Listing 6 (Fixinittab) zeigt.
01 #!/usr/bin/perl
02 # fixinittab
03
04 use Sysadm::Install qw(:all);
05
06 $file = "/etc/inittab";
07 $data = slurp $file;
08 $data =~
09 s/id:5:initdefault:/id:3:initdefault:/;
10 blurt $data, $file;
|
Es geht sogar noch kompakter, wie Listing 7 belegt. Ähnlich Perls Inline-Edit-Modus (»perl -p -i -e "..."«) stellt Sys-adm::Install die »pie()«-Funktion bereit. Sie nimmt mindestens zwei Argumente: eine Referenz auf einen vom Benutzer definierten Callback und einen oder mehrere Dateinamen. »pie()« geht zeilenweise durch alle angegebenen Dateien, ruft für jede den Callback auf und ersetzt die Zeile durch den Rückgabewert der Funktion. Sind alle Änderungen ausgeführt, schreibt »pie()« das Ergebnis wieder in die Datei zurück.
01 #!/usr/bin/perl
02 # fixinittab-pie
03
04 use warnings;
05 use strict;
06
07 use Sysadm::Install qw(:all);
08
09 pie(sub {
10 s/id:5:initdefault
11 /id:3:initdefault/gx; $_;
12 }, "/etc/inittab");
|
Bei Ersetzungen mit dem Substitutionsoperator ist zu beachten, dass »s/a/b/« nicht etwa den Ergebnisstring zurückliefert, sondern die Anzahl der ausgeführten Ersetzungen. Besteht der Callback nur aus einer Ersetzung, sorgt »s/a/b/; ;« dafür, dass auch wirklich der Ergebniswert der Ersetzung zurück in die Datei wandert.
Tipp für Faule
Nicht für alle klingt das Klappern der Tastatur wie Musik: Wer es leid ist, ständig »#!/usr/bin/perl« zu tippen und »use Sysadm::Install qw(:all)«, der definiert sich einfach ein Vim-Makro wie in Abbildung 1. Es ordnet der Tastenkombination [!]+[P] (P steht für Perl) im Kommandomodus ein Insert-Kommando zu, gefolgt von den ersten sieben Zeilen eines Sysadm::Install-Skripts: der Perl-Shebang-Zeile, etwas Verzierung, einem Template für den Skriptnamen, dem Verwendungszweck und dem Namen des Autors. Das ».vimrc«-Kommando muss in einer Zeile stehen. Die später als »^M« angezeigten Zeilenumbrüche erreicht man mit [Ctrl]+[V] gefolgt von [Enter] im Vim-Eingabemodus.

|
Abbildung 1: Das Makro ordnet der Tastenkombination [!]+[P] im Kommandomodus die Startzeilen eines Perl-Skripts zu und setzt den Editor in den Einfügemodus.
|
Ein neues Skript entsteht einfach mit dem Aufruf »vim test-script«. Ein anschließendes [!]+[P] fügt den Header ein und setzt den »vim« in den Insert-modus (Abbildung 2). Ein aufregendes Perl-Shellskript kann beginnen! (jcb)

|
Abbildung 2: Der Erfolgt des Vim-Makros in Abbildung 1: Nach [!]+[P] kann der Skriptautor verzögerungsfrei drauflosskripten.
|
|
Michael Schilli arbeitet als Software-Engineer bei Yahoo! in Sunnyvale, Kalifornien. Er hat "Goto Perl 5" (deutsch) und "Perl Power" (englisch) für Addison-Wesley geschrieben und ist unter [mschilli@perlmeister.com] zu erreichen. Seine Homepage: [http://perlmeister.com]
|
| Whitepaper |
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)
Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
|
Usage Landscape Enterprise Open Source Data Integration
Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|