-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 


indietro

[18] Perché utilizzare $&, $` o $' rallenta il mio programma? $MATCH $& $POSTMATCH $' $PREMATCH $`

(contributo di Anno Siegel)

Quando Perl si accorge che vi occorre una di queste variabili, ovunque nel vostro programma, le fornisce in ogni operazione di 'pattern matching' [corrispondenza/ricerca di uno schema, NdT]. Questo significa che su ogni pattern match, l'intera stringa verrà copiata, una parte di essa in $`, un'altra in $& e un'altra in $'. Dunque la penalità è estremamente severa con stringhe lunghe e pattern di cui si ha spesso un match. Se potete, evitate di usare $&, $' e $`, ma se non potete evitarlo, una volta che le avete usate allora usatele quanto volete, perché ne avete già pagato il prezzo. Tenete presente che alcuni algoritmi apprezzano molto l'uso di queste variabili. A partire dalla versione 5.005, la variabile $& non è così "costosa" quanto le altre due.

A partire dal Perl 5.6.1, le variabili speciali @- e @+ possono rimpiazzare come funzionalità $`, $& e $'. Questi array contengono dei puntatori all'inizio e fine di ogni match (consultate perlvar per l'intera faccenda), dunque vi danno essenzialmente la stessa informazione ma senza rischiare di copiare troppe stringhe.

vedi in inglese

AUTORE E COPYRIGHT

Copyright (c) 1997, 1998, 1999, 2000, 2001 Tom Christiansen e Nathan Torkington. Tutti i diritti riservati.

Questa documentazione è libera; puoi ridistribuirla e/o modificarla secondo gli stessi termini applicati al Perl.

Indipendentemente dalle modalitè di distribuzione, tutti gli esempi di codice in questo file sono rilasciati al pubblico dominio. Potete, e siete incoraggiati a farlo, utilizzare il presente codice o qualunque forma derivata da esso nei vostri programmi per divertimento o per profitto. Un semplice commento nel codice che dia riconoscimento alle FAQ sarebbe cortese ma non è obbligatorio.

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google