Thread ternary op und regexp (5 answers)
Opened by dukeofnukem at 2007-10-12 16:34

dukeofnukem
 2007-10-12 16:34
#100759 #100759
User since
2007-01-15
47 Artikel
BenutzerIn
[default_avatar]
Alohá!

Wenn ich so was mache:


Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
my $bogus;
my $result;

my $Rx = ( test => qr/abc(\d+)def/s );

my @cont = do{ local( *ARGV, $/, $_ ); @ARGV = $file; $/ = "arglbargl"; <>; };

for ( @cont ) {

/$Rx{'test'}/ ?
$result = $1 :
$result = ++$bogus;

print $result;
}


kriege ich trotz greifender Rx $result = ++$bogus zurück, wenn ich allerdings

/$Rx{'test'}/ ?
( $result = $1 ) :
( $result ) = ++$bogus;



benutze ist alles wunderbar, auch

$result = /$Rx{'test'}/ ?
$1 : ++$bogus;


klappt wunderbar ~:-/

Wieso muß die Zuweisung in Klammern? Wenn die Regexp nicht interpoliert werden muß, klappts auch so:

/abc(\d+)def/ ?
$result = $1 :
$result = ++$bogus;


...

entnervt,

Martin

edit pq: code-tags hinzugefügt
drum&bass is a state of mind

View full thread ternary op und regexp