Beat: Regulärer Ausdruck

Beitrag lesen

....
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

--
Woran ich arbeite:
X-Torah
><o(((°>      ><o(((°>
   <°)))o><                      ><o(((°>o