Interne variabler, $ 1, $ 2 ... $ 9 Her ønsker vi at se de værdier de interne variable, $ 1, $ 2, etc tage efter udskiftningen. Følgende kode illustrerer dette: Brug streng; min $ availableString = ". Jeg er en mand Du er en mand." $ availableString = ~ s /(mand) /kvinde /; print "\\ $ 1 er:", $ 1, "\\ n"; Udgangen er: $ 1 er: mand Der er én gruppe (mennesket) i den matchende mønster. Det svarer til $ 1. Efter udskiftningen, $ 1 er "mand" og ikke "kvinde". Så efter Søg og erstat, den interne variabel holder, hvad der er matchet og ikke hvad der er udskiftet.
Jeg har ikke overvejet tilfældet med g middel. Split Operation Der er en operatør kaldet Split Operator. Syntaksen er: split /mønster /, snor Opdelingen operatør opdeler en streng i en liste over sub strenge og returnerer listen. Mønsteret er separatoren f.eks et komma. Separatoren er ikke en del af den returnerede listen. Overvej følgende tilgængelige streng: $ availableString = "en to tre"; Hvis vi kender regex mønster til at identificere mellemrum mellem ord, så kan vi opdele denne streng i en liste, der består af ordene, "en", "to" og "tre". Denne liste kan være et array.
\\ Er tegnet til rummet. \\ + Vil matche et rum en eller flere gange. Regex til at adskille de ovennævnte ord er /\\ + /Vi antager, at rummet kunne blive skabt ved at trykke på mellemrumstasten mere end én gang. Følgende kode illustrerer anvendelsen af den opdelte operatør med ovennævnte mønster. bruge en streng; min $ availableString = "en to tre"; minewords = split /\\ + /, $ availableString; print "første element er:", $ ord [0], "\\ n"; print "andet element er:", $ ord [1], "\\ n"; print "Tredje element er:", $ ord [2], "\\ n"; I det tilgængelige strengen ordene er adskilt af mellemrum.
Udgangen af ovenstående kode er: første element er: en andet element er: to tredje element er: tre den spildte operatør har delt ordene i den tilgængelige stre