ABSTRACT: perl grundlagen: philosophie und erste beispielscripts AUDIENCE: perl beginners SYSTEM: any unix SECTION: perl AUTHOR: mond COPYRIGHT: GNU Free Documentation Licence http://www.gnu.org/licenses/fdl.txt wie man mit der bash (oder einer aehnlichen shell) nuetzliche scripts schreiben kann haben wir ja bereits gelernt. fuer typische systemverwaltungs aufgaben braucht man meisten noch tools wie cut, awk, sed, ... in den scripts. shell scripts verlassen sich generell sehr stark auf viele kleine tools die in einem script verknuepft werden. groessere scripts werden dadruch etwas fragil und auch langsam. fuer etwas groessere aufgaben empfiehtl sich daher eher die verwendung einer scriptsprache wie perl. perl ist heute standard auf jedem unix (und auch fuer mac, windows und viele andere system erhaeltlich) und ermoeglicht es portable scripts zu schreiben. bevor wir also sed oder awk ueberhaupt behandeln moechte ich in die CD einen kurzen perlkurs einfliessen lassen. perl ist in den meisten faellen ohnehin eine bessere wahl als ein shell script mit viel awk/sed. perl wurde von larry wall uruspruenglich als sed/awk/sh ersatz entwickelt, ist aber inzwischen eine ausgewachsenen programmiersprache. perl hat das motto: "make easy things eays and hard things possible": d.h. man kann relativ schnell einfache sachen mit perl machen aber notfalls auch schwierige... weiteres motto von perl "there are more then one way to do it in perl". perl will dem anwender also keine programmierideologie aufzwingen sondern man kann perl in verschiedenster weise verwenden um seine probleme zu loesen. (ein daraus resultierendes problem ist: es ist unter umstaenden schierig den perl code von anderen zu lesen und zu verstehen wenn diese einen anderen "stil" verwenden..) einer der vorteile von perl ist dass man sehr leicht mit verschiedenen systemen "sprechen" kann. vom webserver bis zur datenbank, von der numerischen mathematik bis zur bioinformatik, etc..etc.. fuer alles moegliche gibt es schon perl module die man verwenden kann. perl ist somit ein idealer "kleister" zur verbindung solcher systeme.. sozusagen: "the duct tape of the internet" soweit zur theorie: schaun wir uns ein kleines beispielscript an. wir schreiben mit einem texteditor ein file namens "test.pl": #!/usr/bin/perl -w print "hello world\n"; das #! kennen wir schon von shell scripts. /usr/bin/perl ist hier das programm dass unser script abarbeitet. eben perl. der -w switch ist nicht unbedingt notwenidg aber von vorteil: damit bekommt man extra warnungen falls man einen fehler hat. wir speichern das file ab und machen es zu einem ausfuehrbaren script: chmod ugo+rx test.pl und dann koennen wir es aufrufen. ./test.pl nicht sehr aufrgend... das print kommando gibt den string aus. interessant eventuell das \n. das zeichen bedeutet "newline" und sorft dafuer dass nach dem hello world eine neue zeile begonnen wird. #!/usr/bin/perl -w $name="andrea muster" ; $alter=27; print "der wert der variablen name ist " . $name . "\n" ; print "der wert der variablen alter ist " , $alter , "\n" ; print "abc $name $alter\n"; # das hier ist kommentar. (faengt mit # an) # # zuerst werden 2 variablen $name und $alter werte zugewiesen. der einen # eine zeichenkette und der anderen ein zahlenwert 27 die werte # werden dann mit print auf 3 verschiedne arten ausgegeben # # beim ersten print wird mithilfe der operation . (punkt) # die zeichenkette $name mit anderen zeichenketten verknuepft # beim zweiten werden dem print mehrere durch , getrennte argumente # angegeben die es alle nacheinander ausducht # im 3ten fall wird $name und $alter direkt in den string eingesetzt # und danach mit print ausgegeben # # die einzelnen perl statements sind durch ; (strichpunkt) # getrennt. soweit unsere ersten 2 perl programme. EXERCISES: * schreibe ein perl programm das einen text ausgibt. * weise in perl einer variablen einen wert zu und gibt die variable mit print aus. REFERENCES: man perl "perl the first postmodern programminglangue": http://www.wall.org/~larry/pm.html http://www.perl.com/pub/q/documentation