Notizen Perl

Aus Tiohs Tutorials

Wechseln zu: Navigation, Suche


Mit 
use warnings;  
Warnings ein mit  

no warnings; 
ausschalten


my $key = shift;
shift nimmt Element aus Array heraus.
Andere Möglichkeit:
my ( $key1, $string ) = (@_);

sub name ($$)
bedeutet müssen zwei Variablen übergeben werden


Perl-Module:
Um mehrfaches ausführen gleicher Funktionen zu vermeiden require "file.pl";
in file.pl letzte Zeile 
1;
damit Prüfung true - sonst Fehler beim Compilieren


perl -e 'print join $/, @INC'

Statt \n $/ verwenden, ist Betriebssystem-unabhängig

Lib-Pfade in /etc/profiles global


Diff mit schnellem kopieren der Änderungen in die andere Datei Programm meld (in Python geschrieben)


Array:

my @w;
push @w, "neuer Wert";

perldoc perlop #zeigt Operatoren

@x = localtime;

Teile aus Array direkt in Skalare kopieren
($t, $m) = (localtime)[3,4];


Hashes:
%words = ( yellow => "Gelb", blue => "Blau" );
print join ", ", values %words;
print $words{"yellow"};

Weiteres Element einfügen:
$words{red} = "Rot";


In Perldoc Funktion suchen
perldoc -f funktionsname

Hash und Values vertauschen:
%woerter = reverse %words

Löschen eines Hashes mit Value:
delete $words{hash};


if (exists $words{blue}) { print "blue existiert" }

@a = ( 1 .. 5 );                     # 1 2 3 4 5
@a = map { 1 + $_ / 10 } ( 1 .. 6 ); # 1.1 1.2 1.3 1.4 1.5 1.6
@a = (1) * 6;                        # 1 1 1 1 1 1
@a = 1 * 6;                          # 111111


Referenz:
$ref_a = \@a;   #Referent auf das Array in skalare Variable

Dereferenzieren mit Symbol des betreffenden Datentyps:
@array = @$ref_a;

Typ der referenzierten Daten auslesen:
print ref($ref_a);

Referenzeun auf Funktionen:
sub hallo { print "Hallo, Welt\n" };
&hallo;
$r_ref = \&hallo;
Aufrufen:
&$r_ref;


Im debuger x /%words weigt hash und inhalte
x %words zeigt die Elemente als liste nacheinander (Hash-beziehungen sind nicht ersehbar)

@c = ( \@a, \@b, \%words )
print @{$c[0]};     # ganzes array @a
print ${$c[0]}[2];  # dritter Wert von @a


%bearbeiten = ( "Kopieren" => "copy", "Einfügen" => "paste" );
%datei = ( "Öffnen" => "open", "Speichern" => "save" );
%menu = ( "Datei" => \%datei, "Bearbeiten" => \%bearbeiten );

$m = \%menu;
print $m->{Datei}->{Speichern}; # save



Anonyme Hashes:
$m = { "Datei"      => { "Öffnen"   => "open", "Speichern" => "save" }, 
       "Bearbeiten" => { "Kopieren" => "copy", "Einfügen"  => "paste" } };

Für Arrays:
$aray_ref = [ 1, 2, 3 ];
print $array_ref -> [0]; #erster Wert ausgeben


Optionen (z.B. -o) übergeben lib 
Getopt::Long
Getopt::Std

Variablem (code) beim Aufrufen setzten perl -s


Wird $&, $' oder $` benutzt, wo wird für jede weitere Regular-Expression dafür jedesmal wieder Speicher reserviert. 




Persönliche Werkzeuge