Home - Programmieren - Perl - Fileoperationen und Directoryoperationen
Hinweis: Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich. Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren. [Druckansicht] [Als E-Mail senden] [Kommentar verfassen] Übersicht bis jetzt haben wir immer von STDIN gelesen. das ist praktisch fuer kleine #!/usr/bin/perl -w open(BLA," while( das "or die" hinter open wir aufgerufen falls das open fehlschlaegt.
der das < beim open gibt an dass wir die datei zum lesen offenen. wuerden wir #!/usr/bin/perl -w open(BLI,">blabla.txt") or die "das file kann nicht geschrieben werden"; print BLI "bla bla bla\n"; close(BLI); dieses script schreibt die zeile "bla bla bla" in das file "blabla.txt"
im wuerden wir die date mit open(BLI,">>blabla.txt"); oeffnen so wuerden wir der text an eine eventuell schon vorhandene neben files kann das open auch programme starten und deren ausgabe lesen open(BLA,"who|") or die "can not run who"; while( close(BLA); das open(BLA,"who|") starte das programm und verbindet das filehandel
BLA #!/usr/bin/perl -w open(BLA,"|mail -s test fs\@mond.at") or die "can not execute mail programm"; print BLA "hallo du da\n"; close(BLA); obiges program verschickt eine mail an mich in dem das programm "mail" echo hallo du da | mail -s test fs@mond.at man beachtet das \ vor dem @. dieses "escape" ist notwendig weil
sonst
eine elegantere methode programme aufzurufen ist: open(BLA,"|-") or exec "/usr/bin/mail" , "-s" , "test" , "fs\@sil.at" ; der vorteil hier ist das der aufruf von programmen via exec sicherer ist obige beispiele funktionieren natuerlich nur wenn die entsprechenden
opendir(HIER,".") or die "kann aktuelles verzeichniss nicht
lesen\n"; print "filename ist $name\n"; } obiges script liest das directory "." und gibt alle darin gefundenen #!/usr/bin/perl -w opendir(HIER,"/etc") or die "kann verzeichniss nicht lesen\n"; print join(",",@allenamen);
zuletzt noch eine andere praktische methode um unix kommandos aus perl aus $datum=`date`; obiges ruft den befehl "date" und den befehl "pwd" auf.
alternativ kann $verzeichniss=qx/pwd/; EXERCISES: * lies das file /etc/passwd und gib eine liste aller user und ihrer * verwende opendir, readdir um in obiger liste auch noch die anzahl der * verwende `` und du -s um die summe des von den usern in ihren * erweiteres das script so dass es allen usern mit einer userid > 200
|
![]() ![]() ![]()
Autoren:04516
Artikel:00815 Glossar:04116 News:13565 Userbeiträge:16552 Queueeinträge:06254 ![]()
Projektsteuerung statt Anwesenheitskontrolle
MONDroid - your monitoring Solution for Android with PRTG-Support Red-Hosting jetzt mit erweitertem Shop-Webhosting-Angebot [Mehr News] ![]()
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
|