Metainformationen zur Seite

If / Then / Else als Einzeiler (Perl und PHP)

Der sogenannte Ternäre Operator (ternary operator → Perl Doc, PHP Doc) erlaubt eine If - Then - Else Operation in einer Zeile. Das eignet sich gut, um beispielsweise ein Configfile auszulesen und wenn kein Wert definiert ist, einen Standardwert zu setzen.

Die Syntax ist:

Syntax

my $variable = <Bedingung> ? <Wert> : <Sonst-Wert>;

Beispiel

Syntax

use Config::Simple;
my $pcfg = new Config::Simple("$lbpconfigdir/miniserverbackup.cfg");
 
# Ist im Configfile ein Kompressionslevel definiert, verwende diesen, sonst setze diesen auf 5
my $compressionlevel = defined $pcfg->param("MSBACKUP.COMPRESSION_LEVEL") ? $pcfg->param("MSBACKUP.COMPRESSION_LEVEL") : 5;
 
 
# Ist im Configfile ein Arbeitsverzeichnis definiert, verwende den Wert des Configfiles, sonst setze dieses auf lbpdatadir/workdir
my $bkpworkdir = defined $pcfg->param("MSBACKUP.WORKDIR") ? $pcfg->param("MSBACKUP.WORKDIR") : "lbpdatadir/workdir";