Hallo Jan,
Am Montag, 19. Januar 2015 17:23:15 UTC+1 schrieb Jan Schmidt:
> my$re1 = qr/(.*lea.*\[%sp\]-|.*sub\.a.*%sp,)([0-9]{1,4})/;
dafür gibt es die "non-capturing groups". Da nimmt man statt "()" einfach "(?:)". Damit werden die Treffer nicht in den $#-Variablen gespeichert. Also:
my $re1 = qr/(?:.*lea.*\[%sp\]-|.*sub\.a.*%sp,)([0-9]{1,4})/;
Um das ganze lesbarer zu machen würde ich noch den x-Modifier nehmen:
my $re1 = qr/
(?: # speichern des folgenden Ausdruckes ausschalten
.*lea.*\[%sp\]- | # entweder was mit "lea"
.*sub\.a.*%sp, # oder mit "sub"
)
([0-9]{1,4}) # matche die Zahl
/;
Jetzt hast Du die Zahl in $1