Kontakt aufnehmen

CGI: Wichtige Funktionen für Variablentypen

Für die einzelnen Variablentypen existieren in Perl spezifische Funktionen, welche der Manipulation der Variablen dienen oder Information zu ihnen bereithalten. Mithilfe dieser Funktionen kann man die entsprechenden Variablen sehr effektiv in Szene setzen.

Arithmetische Funktionen

Im Folgenden werden sämtliche mathematische Funktionen aufgelistet, welche ohne Einbindung weiterer Module wie z.B. math in Perl verfügbar sind:

FunktionParameterBeschreibung/RückgabewertBeispiel
absbeliebige Zahl Ermittelt den Positivwert der Zahl und gibt ihn zurück$Ergebnis = abs(-12.234);
atan21. beliebige Zahl x
2. beliebige Zahl y
Ermittelt den Arcus-Tangens aus Quotient y/x und gibt ihn zurück$Ergebnis = atan2(1.234,2.345);
cosbeliebige ZahlErmittelt den Cosinuswert der Zahl und gibt ihn zurück$Ergebnis = cos(0);
expbeliebige ZahlErmittelt den Exponential-Wert der Zahl und gibt ihn zurück; Umkehrfunktion von log$Ergebnis = exp(1);
hexHexadezimale ZeichenketteErmittelt den Dezimalwert einer hexadezimalen Zeichenkette und gibt ihn zurück$Ergebnis = hex("FE");
intZeichenkette oder beliebige ZahlErmittelt den ganzzahligen Anteil der Zeichenkette oder Zahl und gibt ihn zurück$Ergebnis = int(1.234);
logbeliebige ZahlErmittelt den Logarithmus naturalis der Zahl und gibt ihn zurück; Umkehrfunktion von exp;$Ergebnis = log(1);
octZeichenkette mit OktalzahlErmittelt den Dezimalwert einer Zeichenkette mit Oktalzahl und gibt ihn zurück$Ergebnis = oct("550");
rand(obere Grenze n des Wertebereichs)Ermittelt bei Verzicht auf Parameter eine Zufallszahl zw. 0 und 1; andernfalls zw. 0 und n; n kann auch vorher mit srand() festgelegt werden; gibt Zufallszahl zurück$Ergebnis = rand(12);
sinbeliebige ZahlErmittelt den Sinuswert der Zahl und gibt ihn zurück$Ergebnis = sin(1);
sqrtbeliebige Zahl > 0Ermittelt die Quadratwurzel der Zahl und gibt sie zurück$Ergebnis = sqrt(16);
srandbeliebige ZahlLegt obere Grenze n des Wertebereichs für rand() fest, wobei Ganzzahl von n ermittelt wird; kein Rückgabewertsrand(12);
$Ergebnis = rand();

Stringspezifische Funktionen

Es gibt eine Reihe von Funktionen für Zeichenketten, wobei die wichtigsten in der folgenden Übersicht kurz erläutert werden:

FunktionParameterRückgabewertBeschreibungBeispiel
chompZeichenketteAnzahl der entfernten ZeichenEntfernt letztes Zeichen einer Zeichenkette, wenn dieses in $/ (Kette von Seperatoren, standardwert: n) enthalten istchomp("abn");
chopZeichenketteEntferntes ZeichenEntfernt stets letztes Zeichen einer Zeichenkettechop("abc");
chrZeichenwert (numerisch)Entsprechendes ASCII-ZeichenErmittelt zum Zeichenwert entsprechendes ASCII-Zeichen$Zeichen = chr(64);
index1. zu durchsuchende Zeichenkette
2. zu suchende Zeichenkette
3. optinal: numerische Startposition der Suche (Standard: 0)
Position, an der gesuchte Zeichenkette gefunden wurde, -1, wenn nicht gefundenSucht ohne Anwendung regulärer Ausdrücke in einer Zeichenkette nach einer beliebigen (Teil-)Zeichenkette; optional kann eine Startposition angegeben werden$Position = index("abcd","bc");
lcZeichenketteVeränderte ZeichenketteWandelt alle Großbuchstaben (A-Z) in entsprechende Kleinbuchstaben (a-z) um$String = lc("ABC");
lcfirstZeichenketteVeränderte ZeichenketteWandelt erstes Zeichen -wenn Großbuchstabe (A-Z)- in entsprechenden Kleinbuchstaben (a-z) um$String = lcfirst("abc");
lengthZeichenketteAnzahl der Zeichen (Länge der Zeichenkette)Ermittelt die Anzahl der Zeichen in einer Zeichenkette$Laenge = length("abcd");
ordASCII-ZeichenEntsprechender Zeichenwert (numerisch)Gegenstück zu chr$Zwert = ord("@");
posZeichenketteJeweilige Position nach Treffer für reg. AusdruckErmittelt die jeweilige Stelle nach einem gefundenen Suchmuster (reg. Ausdrücke)$String = "abcd";
if($String =~ m/cd/g)
{ $StartPos = pos($String); }
reverseZeichenketteVeränderte ZeichenketteDreht die Zeichenreihenfolge der Zeichenkette um$Umgekehrt = reverse("abcd");
split1. regulärer Ausdruck als Definition für Trennstellen
2. Zeichenkette
Liste einzelner Teile aus ZeichenketteZerteilt eine Zeichenkette in (mehrere) Teilzeichenketten, wobei als Trennstelle ein regulärer Ausdruck übergeben werden muss;ist Trennstelle nicht vorhanden, wird gesamte Zeichenkette zurückgegeben@Zeichen = split(/ /,"a b c");
substr1. Zeichenkette für Extraktion
2. Startposition des Extrakts in Zeichenkette
3. optinal: Anzahl der Zeichen des Extrakts
4. optional: Ersatzzeichenkette
Extrakt aus ZeichenketteExtrahiert aus einer Zeichenkette eine (Teil-)Zeichenkette ab einer bestimmten Startposition bis zum Ende der Zeichenkette; optional können Länge(!) des Extrakts und eine Zeichenkette, welche anstelle der Teilzeichenkette treten soll, angegeben werden$Sub = substr("abcdef",1,2);
substr("abcdef",1,2,"BC");
ucZeichenketteVeränderte ZeichenketteGegenstück zu lc$String = uc("abcd");
ucfirstZeichenketteVeränderte ZeichenketteGegenstück zu lcfirst$String = ucfirst("aBC");

Array- bzw. listenspezifische Funktionen

Eine Übersicht aller array- bzw. listenspezifischer Funktionen:

FunktionParameterRückgabewertBeschreibungBeispiel
chompArrayAnzahl der entfernten ZeichenEntfernt letztes Zeichen aller Arrayelemente (String), wenn dieses in $/ (Liste von Seperatoren, standardwert: n) enthalten ist@Array = ("String1n", "String");
chomp(@Array);
chopArrayEntferntes Zeichen des letzten ArrayelementsEntfernt letztes Zeichen des letzten Arrayelements@Array = ("String1n", "String");
chop(@Array);
grep1. Bedingung für Extraktion der Elemente (z.B.: reg. Ausdruck)
2. Array/Liste
Liste der extrahierten Elemente, welche Bedingung aus 1. Parameter erfüllenExtrahiert Elemente aus einem Array/Liste, wobei dieser Vorgang an eine Bedingung geknüpft ist@Array = ("Str_1", "Str2", "Str_3");
@Elements = grep(/_/,@Array);
join1. Zeichen oder Zeichenkette als Trennung der Elemente
2. Array/Liste
Zeichenkette mit allen Elementen des Arrays/Liste getrennt durch Zeichen(folge) im 1. ParameterFügt die Elemente eines Arrays/einer Liste zu einer Zeichenkette zusammen, wobei der Wert des 1. Parameters als Trennung dient@Array = ("String1", "String2");
$String = join("_",@Array);
map1. Befehl (z.B. Funktion), der auf alle Elemente ausgeführt werden soll
2. Array/Liste
Verändertes Array/veränderte ListeFührt den Befehl des 1. Parameters auf alle Elemente des Arrays/der Liste aus@Array = ("String1", "String2");
@Array = map(lcfirst,@Array);
popArrayGelöschtes ElementEntfernt das letzte Element des Arrays@Array = ("String1", "String2");
pop(@Array);
push1. Array
2. n Elemente, die dem Array angehängt werden sollen
Anzahl der Elemente des verlängerten ArraysFügt einem Array n Elemente am Ende an, wobei n >= 0 sein kann@Array = ("String1");
push(@Array, "String2");
reverseArray/ListeVerändertes Array/veränderte ListeDreht die Reihenfolge der Elemente im Array/in der Liste um@Array = ("String1",2);
@Array = reverse(@Array);
shiftArrayGelöschtes ElementEntfernt das erste Element des Arrays@Array = ("String1", "String2");
shift(@Array);
sortArray/Liste
Oder:
1. Algorithmus für das Sortieren
2. Array/Liste
Sortiertes Array/sortierte ListeSortiert die Elemente eines Arrays/einer Liste alphabetisch oder nach einem selbst definierten Algorithmus, welcher meist in einer separaten Subroutine notiert wird@Array = ("String2", "String1");
@Array = sort(@Array);
splice1. Array/Liste
2. Index des (1.) zu löschenden Elements
3. optinal: Anzahl der zu löschenden Elemente
4. optinal: Liste von n Elementen, welche (anstelle der gelöschten) eingefügt werden sollen
Liste der gelöschten ElementeLöscht Elemente ab im 2. Parameter angegebener Position. Wird der 3. Parameter weggelassen, werden alle Elemente ab im 2. Parameter angegebener Position gelöscht, sonst n viele Elemente, welche bei Angabe des 4. Parameters durch diese ersetzt werden.#2. Elem. löschen:
@Array = ("String1", "String2", "String3");
splice(@Array, 1, 1);
#2.Elem. ersetzen:
@Array = ("String1", "String2", "String3");
splice(@Array, 1, 1, "String4");
undefElement, dessen Wert entfernt wird"undef"Entfernt den Wert des Elements (nicht das Element selbst!)@Array = ("String1", "String2");
undef($Array[1]);
unshift1. Array
2. Liste von n Elementen, welche am Beginn des Arrays eingefügt werden sollen
Anzahl der Elemente des verlängerten ArraysFügt einem Array n Elemente am Beginn hinzu, wobei n >= 0 sein kann@Array = ("String1", "String2");
unshift(@Array, "String0");

Hashspezifische Funktionen

Einige arrayspezifische Funktionen, welche hier nicht erwähnt werden, sind auch auf Hashes anwendbar, wobei jedoch die Schlüssel-Wert-Paarungen aufgelöst, d.h. das Hash im Array-Kontext bewertet, wird. Dies führt ggf. nicht zum gewünschten Ergebnis.
Sämtliche Funktionen für assoziative Arrays sind im Folgenden aufgelistet:

FunktionParameterRückgabewertBeschreibungBeispiel
chompHashAnzahl der entfernten ZeichenEntfernt letztes Zeichen aller Hashwerte (String), wenn dieses in $/ (Liste von Seperatoren, standardwert: n) enthalten ist%Hash = (P1 => "Str_1n", P2 => "Str_2");
chomp(%Hash);
chopHashEntferntes Zeichen des letzten HashwertsEntfernt letztes Zeichen des letzten Hashwerts%Hash = (P1 => "Str_1", P2 => "Str_2");
chop(%Hash);
deleteSchlüssel des zu löschenden ElementsWert des gelöschten Elements; undefined, wenn kein Element gelöscht wurdeLöscht die Element-Paarung mit dem Schlüssel des Parameters%Hash = (P1 => "Str_1", P2 => "Str_2");
delete($Hash{"P2"});
eachHashListe aus Name und Wert oder nur Schlüssel des nächsten ElementpaarsErmittelt das aktuell nachfolgende Elementpaar; häufig in Verbindung mit Schleifen verwendet#Rückgabe im Skalar:
%Hash = (P1 => "Str_1", P2 => "Str_2");while ($Key = each(%Hash))
{ print "$Key: $Hash{$Key}<br>n"; }

#Rückgabe in Liste:
while (($Key, $Value) = each(%Hash))
{ print "$Key: $Value<br>n"; }
existsSchlüssel des Elementpaarstrue/false, wenn Hashschlüssel existiert/nicht existiertErmittelt, ob der übergebene Schlüssel Element vom Hash ist; häufig in Verbindung mit bedingten Anweisungen verwendet (if-Abfrage); lässt sich entsprechend negieren%Hash = (P1 => "Str_1", P2 => "Str_2");
if(! exists($Hash{"P3"}))
{ $Hash{"P3"} = "Str_3"; }
keysHashListe mit allen Schlüsselnamen des HashsErmittelt alle Schlüsselnamen eines Hashes und gibt sie in einer Liste zurück%Hash = (P1 => "Str_1", P2 => "Str_2");
@Keys = keys(%Hash);
undefSchlüssel des Elementpaars, dessen Wert entfernt wird"undef"Entfernt den Wert des Hashpaars (nicht das Hashpaar selbst!)%Hash = (P1 => "Str_1", P2 => "Str_2");
undef($Hash{"P1"});
valuesHashListe mit allen Werten des HashsErmittelt alle Werte eines Hashes und gibt sie in einer Liste zurück%Hash = (P1 => "Str_1", P2 => "Str_2");
@Values = values(%Hash);

Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.

Weiterlesen: ⯈ Datenübertragung zwischen HTML und CGI

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern