Thread If-Anweisung mit mehreren Argumenten (8 answers)
Opened by Kevin31 at 2009-06-19 10:38

pq
 2009-06-19 10:46
#122575 #122575
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
also, lange rede, kurzer sinn, du willst eine abfrage, die der folgenden logik entspricht, ja?
Code: (dl )
WENN username == 'root' ODER username == 'wwwrun' ODER username == 'mail' etc.

das lässt sich erstmal ganz einfach in perl übersetzen:
Code (perl): (dl )
if ($username eq 'root' or $username eq 'wwwrun' or ...) {

wahrscheinlich ist aber deine frage eher, ob man das verkürzen kann. am einfachsten hingeschrieben wäre hier eine regex:
Code (perl): (dl )
if ($username =~ m/^(?:root|wwwrun|mail|news|...)\z/) {


man kann aber auch grep verwenden:
Code (perl): (dl )
if (grep { $username eq $_ } qw/ root wwwrun mail news /) {

wobei die regex evtl. sogar effizienter ist, da sie beim ersten erfolgreichen match aufhort, während grep wirklich alle elemente durchgeht und treffer zählt.
bei nur wenigen elementen ist das aber eh völlig unerheblich.

edit: und ansonsten sei dir perldoc empfohlen. unsere liste von deutschen perldocs ist ein guter anfang: Wiki:WebHome
Last edited: 2009-06-19 10:48:21 +0200 (CEST)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread If-Anweisung mit mehreren Argumenten