Leser: 32
1 2 3 4 5 6
my @array1 = (0); my @array2 = (); my @array3 = (); if(grep{ $_ > 0 }(@array1,@array2,@array3)) { #... }
1 2 3 4 5 6
my @array1 = (0); my @array2 = (); my @array3 = (); if(@array1 > 0 or @array2 > 0 or @array3 > 0) { #... }
1 2 3 4 5 6
my @array1 = (0); my @array2 = (); my @array3 = (); if(grep{ $_ > 0 }(scalar(@array1),scalar(@array2),scalar(@array3))) { #... }
1 2 3 4 5 6
my @array1 = (0); my @array2 = (); my @array3 = (); if(grep{ @$_ > 0 }(\@array1,\@array2,\@array3)) { #... }
Guest EnricoTheoretisch ist ja beides gleich und würde die folgende Bedingung auslösen und nicht in elsif oder else greifen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# einfacher Fall mit unless
sub foo {
return unless $@; # gleich zurück solange keine Argumente angegeben wurden
...
}
# komplexer Fall mit if !
if ( !-e $directory ) {
# mkdir
}
elsif ( !-d $directory ) {
# kein Verzeichnis
}
elsif ( !-w $directory ) {
# Verzeichnis, aber nicht schreibbar
}
else {
# muss was wirklich doofes passiert sein...
}
2015-12-23T19:54:58 LinuxerEs gibt einen kleinen Unterschied; unless ist eher ein if not als ein if !; siehe http://www.perlmonks.org/?node_id=947 (siehe dort die Beiträge von holli und merlyn).