Quiq::If - Liefere Werte unter einer Bedingung
Quiq::Object
$str = $class->catIf($bool,sub {$expr,...});
Bedingung
Ausdrücke, deren Resultat konkateniert wird.
String
Ist Bedingung $bool falsch, liefere einen Leerstring. Andernfalls konkateniere die Werte der Ausdrücke $expr, ... und liefere das Resultat zurück. Evaluiert ein Ausdruck $expr zu undef, wird der Wert durch einen Leerstring ersetzt.
$bool
$expr, ...
$expr
undef
Die Methode ist logisch äquivalent zu
$str = !$bool? '': join '',$expr // '', ...;
Sie vermeidet jedoch, dass $expr // '', ... berechnet werden muss, wenn $bool falsch ist.
$expr // '', ...
Konkatenation bei zutreffender Bedingung
Quiq::If->catIf(1,sub { 'Dies', 'ist', 'ein', undef, 'Test', }); ==> 'DiesisteinTest'
@ret = $class->listIf($bool,@list); @ret = $class->listIf($bool,$sub);
Liste, die bei erfüllter Bedingung geliefert wird.
Ist Bedingung $bool wahr, liefere @list bzw. den Rückgabewert von $sub->(), andernfalls eine leere Liste.
!$bool? (): @list
bzw.
!$bool? (): $sub->()
Anmerkung: Die erste Variante hat den Nachteil, dass @list auch dann ausgewertet wird, wenn $bool falsch ist. In dem Fall ist die äquivalente Formulierung normalerweise vorzuziehen.
Setze Attribut ready des Quiq::Html::Page-Objekts nur dann, wenn $refresh erfüllt ist:
ready
my $html = Quiq::Html::Page->html($h, ... Quiq::If->listIf($refresh, ready => qq~ var refresh = $refresh; var interval = setInterval(function() { refresh--; \$('#timer').text(refresh); if (refresh == 0) { clearInterval(interval); \$('#timer').text('Lade Seite...'); location.reload(); } },1000); ~ ), );
1.189
Frank Seitz, http://fseitz.de/
Copyright (C) 2020 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.