Gruppen (en) matcher sub streng "en" i den tilgængelige streng. Gruppen "to" matcher sub strengen "to", i den tilgængelige streng. På grund af denne matching er sub strengen "et" i den tilgængelige streng tildelt den interne variabel $ 1; sub streng, "to" i tilgængelige strengen er tildelt den interne variabel $ 2. I koden, de sidste to erklæringer udskrive værdierne af disse to variabler. Hvis du aldrig har haft de grupper (parenteser), ville matching stadig forekomme, men intet ville være tildele de interne variable, ($ 1 og $ 2). Med andre ord ville intet blive fanget.
Udgangen af koden er: $ 1 er: en $ 2 er: to Du kan have op til 9 grupper (par af parenteser) i mønstret. Hvis der er mindst 9 sub strenge i den tilgængelige streng, der svarer til de 9 grupper i mønstret, så de 9 sub strenge i den tilgængelige streng ville blive tildelt $ 1, $ 2 ... $ 9 henholdsvis. Det er den første matchede ville gå til $ 1; den anden til $ 2, den tredje til $ 3 og så videre. Dette er, hvordan du kan huske eller fange sub strenge i den tilgængelige streng efter matching.
Bemærk: Hvis der ikke er nogen gruppe, så ville der være noget at huske (ingen opgave vil forekomme); ingen fangst. Du behøver ikke at have op til 9 grupper i mønsteret; du kan have et vilkårligt antal mindre. Hvad med indlejrede grupper Betragt følgende kode: Brug streng; hvis ("bogholdere, bogholder og book gå sammen.
" = ~ /bog (keeper (r |) |) /) {print "Matches \\ n"; } Else {print "Ikke Matchet \\ n"; } Print "\\ $ 1 er:", $ 1, "\\ n"; print "\\ $ 2 er:", $ 2, "\\ n"; print "\\ $ 3 er:", $ 3, "\\ n"; Det er produktionen af ovenstående kode: $ 1 er: ihændehavere $ 2 er: s $ 3: Mønsteret ville matche "bogholdere", "bogholder" eller "bogen". Men vi har to grupper; ind i hinanden. Det er disse to grupper, der kan blive husket. Det er grunden til den produktion, $ 3 har intet at vise, da intet blev tildelt den. Den ydre gruppe i det mønste