::Tips & Tricks / Verschiedenes / Perl / 7. Besonderes Seite drucken
  der verein   projekte   veranstaltungen   hilfestellung   tips & tricks   fun   
 
  
  grundsätzliches
  
  fenstermanager
  
  web, mail & news
  
  multimedia
  
  novell/suse
  
  gentoo
  
  VERSCHIEDENES
 externe usb-platten mounten
 datenrettung
 perl
  
  links


home
sitemap
suche
login
hilfeforum
impressum



Finde uns auf:
 

7. Besondere Anweisungen

Perl verfügt über einige sehr interessante und mächtige Anweisungen.


7.1 split

Mit split kann ein String anhand eines Feldtrenners zerlegt werden.


($dd, $mm, $year) = split(/\./, $datum);

 

Das Beispiel zerlegt ein Datum des Formats tt.mm.jj in die drei Teile Tag, Monat und Jahr. Diese Anwweisung ist unempfindlich gegen zwei oder vierstellige Jahreszahlen, da die einzelnen Felder durch den Punkt begrenzt werden, die Länge der einzelnen Felder wird nicht beachtet.

 

Einige Zeichen wie z.B. der Punkt müssen durch einen Backslash von ihrer besonderen Bedeutung befreit werden.


7.2 die

Die Anweisung die dient dem geordneten Abbruch eines Perl-Skripts im Fehlerfall. Um beim Fehlversuch eine Datei zu öffnen das Programm mit der System-Fehlermeldung zu beenden, schreibt man folgendes:


open(DH, "myfile") || die "$0: myfile - $!";

 

Die speziellen Variablen $0 und $! enthalten den Skriptnamen und die Systemfehlermeldung.


7.3 s///

Der folgende Operator ersetzt das erste Zeichen mit dem zweiten Zeichen.


$line =~ s/,/./; # komma durch punkt ersetzen

 

Der Operator =~ erlaubt das gleichzeitige lesen und zuweisen an die Variable. Die Ersetzung wird sonst auf die Eingabe in $_ durchgeführt. Die Ersetzung wird nur einmal ausgeführt.

 

Durch anhängen eines g an den Operator werden alle vorkommen des ersten Zeichens mit dem zweiten ersetzt (global).

 

Wird ein i angehängt, dann wird bei der Suche nach dem ersten Zeichen nicht zwischen Groß- und Kleinschreibung unterschieden. Die Parameter können auch kombiniert werden:


$line =~ s/,/./gi; # global und unabhaengig der schreibweise ersetzen

 


7.4 pack/unpack

 

Das folgende Beispiel schreibt mehrere Variablen in eine Struktur und zerlegt diese anschliessend wieder in einzelne Variablen.


$i1 = 10;

$s1 = "hallo Welt";

$l1 = 900000;

$p = pack "ila10", $i1, $l1, $s1;

($i2, $l2, $s2) = unpack "ila10", $p;

print "$i2 $l2 $s2\n";

Sollte ein String zu lang sein für das angegebene Format, so wird er einfach abgeschnitten! Zahlen bekommen bei falschen Formaten unsinnige Werte.

 


7.5 defined

Nicht initialisierte Variablen werden von Perl nicht als Fehler behandelt. Bei Arrays und Hashes werden sie bei Bedarf stillschweigend angelegt.

 

Eine Variable kann mit defined getestet werden.


$a = "test";

if ( ! defined($myhash{$a}) )

{

$myhash{$a} = 1;

}

 

Falls das Hash-Element mit dem Key test noch nicht existiert, (undefiniert) ist, wird ein entsprechendes Hash-Element erzeugt.