Leser: 1
|< 1 2 3 >| | 29 Einträge, 3 Seiten |
m/(^|,)\s*$key\s*=\s*(\d+)/
1
2
3
4
5
6
...
die "$0: VALUE MIN MAX\n" if @ARGV != 3;
my ($key, $min, $max) = @ARGV;
die "Erstes Argument muss [a-d] sein!\n" unless $key =~ m/^[a-d]$/i;
$key = lc $key;
...
Quoteich denke gerade an die tatsache, dass gerade schon wieder
ein akkusativ für ein dativ geopfert wurde... SCNR =)
m/(^|,)\s*$key\s*=\s*(\d+)/
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl
use strict;
use warnings;
# seltsamer Variablenname
my $var = "Hallo Welt, wie geht es dir?";
# irregulaere Eingabedaten
$_ = "a =5 , $var = 42, b=3\n";
print m/(?:^|,)\s*\Q$var\E\s*=\s*(\d+)/, "\n";
QuoteUnd ich hoffe du fast das nicht als böse gemeint auf. Aber:
(?:^|,)
schreibt man besser so:
[,^]
QuoteHmm, ich bin eher davon ausgegangen, dass man das Programm vielleicht so schreiben möchte, dass es nicht nur auf ein ganz spezifisches Problem passt, sondern genereller verwendbar ist. Es mag ja sein, dass im Moment in den Eingabedaten nur die Variablen a, b, c und d vorkommen, aber es ist doch recht wahrscheinlich, dass bei echten Daten mal jemand auf die Idee kommt, eine Variable x, y, time, height oder was weiß ich wie zu nennen.
QuoteIch sehe keinen Grund Tipps und Anmerkungen als böse gemeint aufzufassen, eher im Gegenteil. Aber dein Tipp ist leider falsch, denn [,^] matcht auf ein Komma oder einen Circumflex, (?:^|,) macht auf den Anfang des Strings(*) oder ein Komma. Letzteres ist das Verhalten, dass ich programmieren wollte.
|< 1 2 3 >| | 29 Einträge, 3 Seiten |