Hier noch eine überarbeitete Fassung, welche jetzt auch Worte akzeptieren sollte, statt nur einzelne Buchstaben.
ich habe diese Version getestet mit:
......
my $times = 5;
my $var = "XYZ"; <======
my $pat = qr/(?<!$var)${var}{$times}(?!$var)/;
hier fehlt noch eine Klammer:
my $pat = qr/(?<!$var)(?:$var){$times}(?!$var)/;
sonst wird {$times} ja nur auf das letzte Zeichen des Wortes angewendet.
mfg Beat