....
my $times = 5;
my $var = "X";
my $pat = qr/(?<!$var)$var{$times}(?=[^$var])/;
my $pat = qr/(?<!$var)${var}{$times}(?=[^$var])/;
Der Trick ^ ^
"---XXXXX---" =~ $pat and print "success\n";
.....Und es kommt der Fehler "global symbol %var requires ....."
Ich sehe kein % in meinem Beispiel.
$var{5} kann als Hashelement interpretiert werden.
Das kann man in REs vorbeigen mit
/${var}{kein_key_mehr}/
Hier noch eine überarbeitete Fassung, welche jetzt auch Worte akzeptieren sollte, statt nur einzelne Buchstaben.
#!C:/Programme/Perl/bin/perl.exe -w
#
use strict;
BEGIN {
use CGI::Carp qw(carpout);
open(LOG, ">>error.txt") or die "Unable to append to error.txt: $!\n";
carpout(*LOG);
}
my $times = 5;
my $var = "X";
my $pat = qr/(?<!$var)${var}{$times}(?!$var)/;
"---XXXXX---" =~ $pat and print "success\n";
"---X-XXXXX---" =~ $pat and print "success\n";
"---XXXXX-X--" =~ $pat and print "success\n";
"---XXXXXXX---" =~ $pat and print "Shit Happens\n";
sleep(10);
exit;
__END__
mfg Beat