Werbung einblenden Werbung ausblenden


Home / Tutorials / Perl Handbuch / bedingte Anweisungen

die if Bedingung
der Ternary Operator
die else Bedingung
die elseif Bedingung
Operatoren für das Arbeiten mit Zeichenketten

die if Bedingung

Mit der if Bedingung wird schon in allen anderen Kapiteln dieses Handbuches gearbeitet. Eigentlich ist sie selbsterklärend. Die if Bedingung kommt wohl in jeder Programmiersprache vor.
Den einfachsten Fall einer if Bedingung zeigt das nächste Beispiel:

$var1=5;
$var2=7;
if ($var1 <7)
{
   print "$var1 ist kleiner als $var2";
}

Zur Verfügung steht alles, was aus der Mathematik bekannt ist. (<,>,>=,>=,==). Exotisch ist vielleicht der <=> Operator:

$var1=5;
$var2=7;

print $var2 <=> $var1, "\n";
print $var1 <=> $var2, "\n";
print $var1 <=> $var1, "\n";

Als Ergebnis erhalten wir: 1,-1 und 0.

  • 1 weil $var2 größer ist als $var1

  • -1 weil $var1 kleiner ist als $var2

  • 0 weil $var1 genau so groß ist wie $var1

Das Ergebnis des Vergleichs mittels Operatoren kann mit dem Ausrufezeichen umgekehrt werden:

$var1=5;
$var2=7;
if(!($var1 > $var2))
{
   print "Stimmt zwar nicht, aber wir drucken trotzdem was";
}
der Ternary Operator

Mit dem Ternary Operator gibt es für einfache Fälle auch eine Kurzschreibweise:

$var1=5;
$var2=7;

$var1 > $var2 ? print "Var1 ist kleiner als Var2" : print "Var2 ist groesser als Var1 \n";
$var1 < $var2 ? print "Var1 ist kleiner als Var2" : print "Var2 ist groesser als Var1 \n";

Abstrakt formuliert, hat der Ternary Operator diese Syntax:
Bedingung ? Das, was passiert, wenn die Bedingung wahr ist : Das, was passiert, wenn die Bedingung falsch ist;

die else Bedingung

Die else Bedingung ist wohl auch jedem bekannt. Mit ihr wird angegeben, was passieren soll, wenn die if Bedingung false ist:

$var1=5;
$var2=7;
if ($var1 > $var2)
{
   print "Da komm ich nicht hin";
}
else
{
   print "Aber das hier druck ich";
}
die elseif Bedingung

Bemerkenswert ist, dass Perl keine Case Anweisung kennt. Gibt es eine Auswahl an Bedingungen, muss mit elseif gearbeitet werden:

$var1=5;
$var2=7;
if ($var1 > $var2)
{
   print "das wird nix";
}
elsif( $var1 == $var2)
{
   print "das wird auch nix";
}
elsif($var1< $var2)
{
   print "das isses. Einer kommt halt doch";
}
else
{
   print "ich werde nicht gebraucht";
}

Gedruckt wird in diesem Fall, "das isses. Einer kommt halt doch".
Die else Bedingung kommt dann zum Zuge, wenn keine elseif Bedingung den Wert true zurück gibt.

Operatoren für das Arbeiten mit Zeichenketten

Für das Arbeiten mit Zeichenketten gibt es eigene Operatoren. Die wichtigsten sind: eq und ne. Hierbei steht eq für equal und ne für not equal:

$var1="A";
$var2="B";

if ($var2 ne  $var1)
{
   print "ich sage hallo, wenn $var1 ungleich $var2. Was hier der Fall ist";
}

if ($var2 eq  $var1)
{
   print "ich sage hallo, wenn $var1 gleich $var2. Was hier nicht der Fall ist";
}
vorhergehendes Kapitel