Thread Regular Expression (4 answers)
Opened by Gast at 2008-04-30 19:47

Gast Gast
 2008-05-02 15:47
#109102 #109102
Erm, die Regex matcht doch: m/foo/ heißt ja "match foo", wobei man das m in diesem Fall auch hätte weglassen können, du meintest sicherlich capturen:
Code (perl): (dl )
my ($ersteKlammer, $zweiteKlammer) = "ich bin ein string" =~ /^(\w+).+(\w+)$/;

Aber weshalb ich den Beitrag eigentlich verfasse ist das hier: (vom anderen Gast...)
Code (perl): (dl )
1
2
3
4
@RECHNERNAME[$i] =UNGLAUBLICHES_REGEX_ZEUGS;
@Zahlenwert1[$i]= UNGLAUBLICHES_REGEX_ZEUGS;
@Zahlenwert2[$i]= UNGLAUBLICHES_REGEX_ZEUGS;
@Zahlenwert3[$i]= UNGLAUBLICHES_REGEX_ZEUGS;

Das sollte man so schreiben:
Code (perl): (dl )
1
2
3
4
$RECHNERNAME[$i] =UNGLAUBLICHES_REGEX_ZEUGS;
$Zahlenwert1[$i]= UNGLAUBLICHES_REGEX_ZEUGS;
$Zahlenwert2[$i]= UNGLAUBLICHES_REGEX_ZEUGS;
$Zahlenwert3[$i]= UNGLAUBLICHES_REGEX_ZEUGS;
Denn du erhälst ja einen Skalar beim Zugriff auf ein Array. Diese Schreibeweise mit @Array[$index] beschreibt ein Array-Slicing. Der Code sollte zwar funktionieren, macht aber subtil was anderes als du eigentlich willst. Benutze einfach immer:
Code (perl): (dl )
1
2
use strict;
use warnings;
dann wirst du von perl auch höflich auf sowas hingewiesen:
Code: (dl )
Scalar value @foo[1] better written as $foo[1] at ...

View full thread Regular Expression