Il parser del Perl espanderà i riferimenti a $variabile e @variabile
in espressioni regolari a meno che il delimitatore sia un singolo quote [un
apice, NdT]. Ricordate inoltre che il lato destro di una sostituzione
s/// viene considerato come una stringa doppiamente quotata (delimitata
da virgolette, NdT) (si veda perlop per maggiori dettagli). Ricordate
anche che ogni carattere speciale delle regex avrà affetto, a meno
che non si preceda la sostituzione con \Q. Di seguito un esempio:
$stringa = "Placido P. Octopus";
$regex = "P.";
$stringa =~ s/$regex/Polyp/;
# $stringa e` ora "Polypacido P. Octopus"
Siccome . è un carattere speciale per quanto riguarda le
espressioni regolari, e può trovare qualsiasi carattere, la
regex P. qui ha trovato il <Pl> contenuto nella stringa originale.
Per effettuare l'escaping del significato speciale di ., utilizziamo
\Q:
$stringa = "Placido P. Octopus";
$regex = "P.";
$stringa =~ s/\Q$regex/Polyp/;
# $string e` ora "Placido Polyp Octopus"
L'utilizzo di \Q fa si che il <.> contenuto nell'espressione regolare
sia trattato come un carattere regolare, cosicché P. possa
trovare una P seguita da un punto.
|