Es gibt hervorragende Bücher im über PERL, und es gibt mindestens ein hervorragendes freies Tutorial für den Einstieg in die PERL-Programmierung. Wozu also noch ein weiteres Tutorial?
Dieses Tutorial entstand aus den Erfahrungen die wir in einigen PERL-Workshops und Inhouse Schulungen für die "innominate-training Gmbh" und die "orange trainig ", "finke, laser nikolaus GbR" gesammelt haben, und muss sich dementsprechend an einer spezifischen Aufgabenstellung messen lassen: In drei Tagen (oder nach 100 Din A4 Seiten bzw 300 kB Lektüre) soll ein Kursteilnehmer:
Im Herbst 2001 wurde die Innominate Training GmbH unter Zurücklasung erheblicher Aussenstände bei vielen freiberuflichen Mitarbeitern insolvent. Der besondere Dank des Autors gilt den Mitarbeitern der ehemaligen Innominate Training GmbH. \\ \\ Vom Autor authorisierte PERL-Schulungen werden jetzt durch die "Orangetraining" Finke, Laser Nikolaus GbR http://www.orangetraining.de angeboten, wo es auch viele weitere interessante Workshops zu buchen gibt :-).
Obwohl die Sprache PERL relativ einfach zu erlernen ist, wendet sich dieser Kurs nicht an Programmieranfänger. Grundlegende Techniken wie Schleifen, Programmverzeigungen,...und Begriffe wie Liste oder Array werden in diesem Kurs nicht erklärt werden. Mehr als ein grundliegendes Verständnis solcher Programmiertechniken ist aber nicht notwendig, und es ist egal ob diese Kenntnisse mit "Fortran 77","GW-BASIC","COBOL" oder einer anderen Programmiersprache erworben wurden.
Dieser Kurs und die zugehörigen Beispiele wurde auf Unix-artigen Betriebssystemen (LINUX,NetBSD) geschrieben und getestet. Während sich 99% der Beispiele auch unter anderen Betriebssystemen nachvollziehen lassen, bleibt ein gewisser Rest von Aussagen und Beispielen die nicht auf anderen Betriebssystemen funktionieren. Insbesondere betrifft dies den Umgang mit Dateirechten und Pipelines, Signalhandling und Socket-basierten Netzwerkfunktionen. Die Autoren sind brennend an solchen Inkompatibilitäten interessiert, haben aber zuwenig Zeit um Windooze zu booten...
Dieses Dokument steht unter der GNU Free Document License, was weniger einer altruistischen Grundeinstellung der Autoren geschuldet ist, als dem Wunsch eine möglichst gute Qualität der Ausbildung anbieten zu können. Indem wir dieses Script frei unter der FDL verfügbar machen erhoffen wir uns viel Feedback, das es uns erlaubt:
Bitte richten Sie ihre Anregungen/Berichtigungen/Kritik/Beiträge per email an jochen.laser@orangetraining.de
Co-Autoren sind jederzeit willkomen! Der besondere Dank des Autors geht an Jörg Ungethüm und Timo Frey für viele hilfreiche Tips und Korrekturen.
Tue Nov 7 14:51:27 CET 2000 : Die Umstellung auf SUSE 7.0
ist dem Laptop nicht gut bekommen. df meldet weniger als
2% freien Plattenplatz und das ist zuwenig.
Natürlich könnte ich einige nicht gebrauchte große Pakete
deinstallieren, dazu muss ich aber erstmal wissen, welche Pakete
wieviel vom knappen Plattenplatz belegen.
Mit dem Redhat Package Manager kann ich eine Liste der
installierten Pakete anzeigen lassen (mit rpm -qi), und mit dem Befehl
rpm -qi <packagename> bekomme ich u.A. die Größe des
installierten Paketes angezeigt. Will ich aber gezielt die großen ungebrauchten
Pakete deinstallieren, dann muss ich mich immer noch durch eine Liste mit
fast tausend Paketen durcharbeiten, die nicht nach Größe, sondern nach
Installationsdatum sortiert ist.
Mit dem folgenden, relativ einfachen PERL-Script (rpmsize.pl) lässt sich diese Aufgabe automatisieren. Es erzeugt eine Liste, die den Namen und die Grösse der installierten Pakete enthält, und die nach der Paketgröße sortiert ist:
#!/usr/bin/perl
open (RPMLIST," rpm -qi \$( rpm -qa ) | " )|| die "Ein Fehler ist aufgetreten : $!";
@input = <RPMLIST> ;
close(RPMLIST);
foreach (@input) {
$line=$_;
if ( $line =~ /^\s*Name/ ){
$pkgName=$line;
}
else{
if ( $line =~ /^\s*Size/ ){
$sizeLine=$line;
$sizeLine =~ s/^\s*Size\s*:\s*//;
$sizeLine =~ s/\s*.Licens.*//;
chomp($sizeLine);
$pkgName =~ s/\s*Name\s*:\s*//;
$pkgName =~ s/\s*Relocations:.*//;
chomp($pkgName);
$packages{$sizeLine}=$pkgName;
}
}
}
print "\n\n sorting sizes in decreasing order.... \n\n";
@sizes= sort {$b <=> $a} keys(%packages);
foreach (@sizes){
print "$_ $packages{$_} \n";
}
Tue Nov 7 14:53:20 CET 2000 :
In 66 Minuten muss
die Tochter aus dem Kindergarten abgeholt werden, vorher soll
dieses Manuskript noch bei innominate-training abgeliefert werden.
Oh Schreck...Das Script ist in HTML geschrieben, innominate will aber
latex. Die Wahrscheinlichkeit einen HTML->Latex Konvertierer in weniger
als 35 Minuten zu schreiben erscheint vergleichsweise gering, selbst
mit PERL.
Aber zum Glück gibt es www.freshmeat.net. schnell mal auf gut Glück nach html2latex gesucht:
search results (1 matches)
exact: html2latex Convert HTML to LaTeX.
» latest release: 1.0 on Sep 15th 2000
» date added: Mar 24th 2000
» category: Console/Text Utilities
» license: GPL
http://html2latex.sourceforge.net/ weiß folgendes darüber zu vermelden:
Summary
html2latex is a Perl script designed to convert a properly formatted HTML file
into a properly formatted LaTeX file.
Genau das was ich brauche...Schnell das Archiv herunterladen, entpacken, das erste
make scheitert an den fehlenden PERL Bibliotheken
"HTML::Tree", "HTML::Parser", "XML::Parser",
und "XML::Tree". Schnell zurück zum
CPAN,
Bibliotheken herunterladen installieren...
> ./html2latex perl.html
Processing perl.html
FILE: Processing perl.html and writing to ./perl.tex
UFF!
Zugegeben: PERL rettet nicht dauernd das Universum, aber uns ;-) Und jetzt kann es losgehen: