Weil der Wert von $1 nicht über die Grenze von eval erhalten bleibt:
use strict;
use warnings;
my $text = "josdifj34joji";
my $regex = '(\d+)';
my $opt = "g";
my $erg=undef;
my $com = '$text =~ m/'."$regex".'/'."$opt;\$erg=\$1";
eval $com;
print "\$1: $erg\n";
ps:
use strict; und use warnings verwenden, ich habs mal eingebaut.
my $com = '$text =~ m/'."$regex".'/'."$opt;\$erg=\$1";
könnte man auch als
my $com = "\$text =~ m/$regex/$opt;\$erg=\$1";
schreiben.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}