Mit dem befehl binmode() wird eine Datei in den binären Modus geschaltet. Wozu? Nun, es gibt Betriebssysteme, die unter einem Binärmodus und einem Textmodus unterscheiden. Zu diesen Betriebssysteme gehören unter anderem Dos und Windows, nicht jedoch Unix. Sollte ihr Script also auf einem Unix-System laufen, ist der Befehl binmode eigentlich überflüssig. Da man aber nie weiß, wo das Script letztendlich läuft, muß man ihn aber eben trotzdem im Hinterkopf behalten und ggf. einsetzen.
Und was macht nun binmode()? Also: Verschiedene Dateien, zum Beispiel .gif und .jpg-Bilder oder auch ausführbare Dateien, müssen zum Beispiel unter Dos und Windows im Binärmodus eingelesen werden, da diese Betriebssysteme die Zeichenfolge CR und LF (Carriage Return und Linefeed) automatisch in ein LF (also Linefeed) umwandelt. Dieser Automatismus würde natürlich die Daten unbrauchbar machen. Weiterlesen...
Mit dem Befehl open() werden in Perl Dateien zum Lesen, Schreiben oder Ausführen geöffnet. Als Parameter werden erwartet:
das Dateihandle
der Dateiname, inklusive Pfadangaben
Mit Hilfe der >, < und |-Zeichen vor dem Dateinamen bzw. Pfadnamen kann man zusätzlich festlegen, ob eine Datei zum Lesen, Schreiben, Anbhängen oder Auführen geöffnet werden soll. Wird nichts angegeben, wird eine Datei zum Lesen geöffnet. Weiterlesen...
Hier ist eine Liste mit den Befehlen, die standartmäßig $_ verwenden, wenn kein weiteres Argument übergeben wird: - abs - alarm - chomp - chop Weiterlesen...
In Schleifen hat man ja manchmal das Problem, daß sie erneut durchlaufen werden sollen, ohne daß der Schleifenzähler erhöht werden soll. Hier hilft redo!
open (FILEHANDLE,"<test.txt"); my $string = do { local $/; <FILEHANDLE> }; print $string;
Der Inhalt der Datei test.txt wird komplett in $string eingelesen. Ohne Schleife oder sonstwas. Wie geht das? Also, die Datei wird geöffnet, so weit alles klar. Weiterlesen...
Der Parameter $parameter ist optional und legt fest, in welchem Bereich die Zufallszahl liegen soll. Wird $parameter weggelassen, so liegt die Zufallszahl zwischen 0 und 1, ansonsten zwischen 0 und $parameter, exclusive Parameter. Das Ergebnis ist immer eine Gleitkommazahl. Weiterlesen...
Mit dem Befehl opendir() kann man unter Perl ein Verzeichnis zum Einlesen öffnen. Dies wird im Allgemeinen dazu verwendet, eine Dateiliste einzulesen um sie weiter zu verarbeiten.
Das handle kann frei gewählt werden, als Verzeichnis sind Angaben in relativer als auch absoluter Form erlaubt, also zum Beispiel '../test' oder '/usr/bin' (Unix) oder unter DOS 'c:/'. Weiterlesen...
Wie man bei time gesehen hat, ist Perl ja durchaus in der Lage, die Systemzeit auszugeben. Aber die Zeit in Sekunden seit 1.1.1970 bringt einen nicht wirklich weiter... Deswegen gibt es in Perl noch die Funktion localtime(). Man kann der Funktion localtime einen beliebigen Wert übergeben, der kompatibel ist zu time ist, und localtime errechnet daraus Tag, Stunde, Minute, Sekunde, Monat, Jahr, Wochentag, Jahrestag und Sommerzeit.
my %zeit=&Aktuelle_Zeit; my $wzsz=''; if ($zeit{sommerzeit} == 0){$wzsz="Winterzeit";} else { $wzsz="Sommerzeit";} print "$zeit{wochentagtext}, $zeit{tag}.$zeit{monat}.$zeit{jahr}, $zeit{stunde}:$zeit{minute}:$zeit{sekunde} Uhr $wzsz";
############ # Zeit- und Datumsfunktion ################################# sub Aktuelle_Zeit{ my @wochentage = ("Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"); my @monatsnamen = ("","Januar","Februar","März","April", "Mai","Juni","Juli","August","September","Oktober", "November","Dezember"); my ($sec,$min,$hour,$heutetag,$heutemonat,$heutejahr,$wday,$yday,$isdst) = localtime(time); $heutemonat++; $heutejahr+=1900; $wday--; if ($wday eq '-1'){$wday=6;}
$hour="0$hour" if (length($hour) == 1); $min="0$min" if (length($min) == 1); $sec="0$sec" if (length($sec) == 1);
my $tagalstext=$wochentage[$wday]; $werte{wochentagtext}=$tagalstext;
my $monatalstext=$monatsnamen[$heutemonat]; $werte{monattext}=$monatalstext; return %werte; }
Ich habe mal ne kleine Subroutine geschrieben, die als Rückgabewert ein Hash zurückgibt, das alle Werte enthält. Mit diesem Unterprogramm kann man auf leichte Weise die aktuellen Zeit- und Datumsdaten abfragen und ausgeben. Weiterlesen...