if (grep($a =~ /$_/, (_12$, _11$, _10$, _08$, _07$, _04$, _00$, _94$, _91$, _90$, _87$, _67$, _24$))) { Anweisung...
Guest BenjaminBisher habe ich:
Code: (dl )if (grep($a =~ /$_/, (_12$, _11$, _10$, _08$, _07$, _04$, _00$, _94$, _91$, _90$, _87$, _67$, _24$))) { Anweisung...
Ich denke, dass ich die Syntax nach dem =~ noch falsch wähle.
1 2 3 4
my @list = qw/ 12 11 10 08 07 04 00 94 91 90 87 67 24 /; if (grep $a =~ /_($_)$/, @list){ say "matched" }
1 2 3 4 5
my @list = qw/ 12 11 10 08 07 04 00 94 91 90 87 67 24 /; my $re = join "|", @list; if ($a =~ /_($re)$/ ){ say "matched" }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
my @list = w/ 12 11 10 08 07 04 00 94 91 90 87 67 24 /;
if (grep $a =~ /_($_)$/, @list) {
if ((grep($a =~ /^$_/, (16, 24, 25, 34)) && ($tbvartyp || 2003) != 2003) ||
(grep($a =~ /^$_/, (43, 44, 63, 64)) && ($tbvartyp || 2002) != 2002) ||
(grep($a =~ /^$_/, (56)) && ($tbvartyp || 2004) != 2004) ||
(grep($a =~ /^$_/, (70, 75, 77, 78)) && ($tbvartyp || 2001) != 2001)) {
push @comments, "matched";
}
}
else {
if (($a =~ /^56/ && ($tbvartyp || 2004) != 2004) ||
($a !~ /^56/ && ($tbvartyp || 2003) != 2003)) {
push @comments, "matched";
}
}
}
Guest BenjaminVielen Dank!
_12$ usw. sollte zum Beispiel bedeuten, dass die 12 am Ende des Strings zu suchen ist - so war die Idee. ;-)
my @list = w/ 12 11 10 08 07 04 00 94 91 90 87 67 24 /;
QuoteDer Operator heisst qw(); nicht w(). Oder hier eben qw// anstatt w//; Tippfehler im Code.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
my @list = qw/ 12 11 10 08 07 04 00 94 91 90 87 67 24 /;
if (grep $a =~ /_($_)$/, @list) {
if ($a =~ m/^(16, 24, 25, 34)$/ && ($tbvartyp || 2003) != 2003) ||
($a =~ m/^(43, 44, 63, 64)$/ && ($tbvartyp || 2002) != 2002) ||
($a =~ m/^(56)$/ && ($tbvartyp || 2004) != 2004) ||
($a =~ m/^(70, 75, 77, 78) && ($tbvartyp || 2001) != 2001)) {
push @comments, "matched";
}
}
else {
if (($a =~ /^56/ && ($tbvartyp || 2004) != 2004) ||
($a !~ /^56/ && ($tbvartyp || 2003) != 2003)) {
push @comments, "matched";
}
}
}
Guest BenjaminVielen Dank!
Code: (dl )1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16my @list = w/ 12 11 10 08 07 04 00 94 91 90 87 67 24 /;
if (grep $a =~ /_($_)$/, @list) {
if ((grep($a =~ /^$_/, (16, 24, 25, 34)) && ($tbvartyp || 2003) != 2003) ||
(grep($a =~ /^$_/, (43, 44, 63, 64)) && ($tbvartyp || 2002) != 2002) ||
(grep($a =~ /^$_/, (56)) && ($tbvartyp || 2004) != 2004) ||
(grep($a =~ /^$_/, (70, 75, 77, 78)) && ($tbvartyp || 2001) != 2001)) {
push @comments, "matched";
}
}
else {
if (($a =~ /^56/ && ($tbvartyp || 2004) != 2004) ||
($a !~ /^56/ && ($tbvartyp || 2003) != 2003)) {
push @comments, "matched";
}
}
}
1 2 3 4
if (($a =~ m/^(16|24|25|34)$/ && ($tbvartyp || 2003) != 2003) || ($a =~ m/^(43|44|63|64)$/ && ($tbvartyp || 2002) != 2002) || ($a =~ m/^(56)$/ && ($tbvartyp || 2004) != 2004) || ($a =~ m/^(70|75|77|78)$/ && ($tbvartyp || 2001) != 2001)) {
1 2 3
bedingung1 && ($tbvartyp || 2003) != 2003) || bedingung2 && ($tbvartyp || 2004) != 2004) || ...
Guest Benjaminich bin absoluter Neuling und komme mit einer if-Anweisung nicht weiter. Ich möchte mit grep eine Liste durchsuchen,