Perl/Istruzioni composte: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
stesura
(Nessuna differenza)

Versione delle 09:48, 14 dic 2006

Template:Linguaggio Perl

Composte

Per composte si intende quelle che chiamano almeno una o più funzioni/Minime. Normalmente è la quasi totalità del codice scritto. Infatti come le frasi possono essere composte da più frasi così uan istruzione può essere il risultato di una composizione di chiamate a funzione o parole semplici. Dato che il lettore al momento conosce solo le variabili e la funzione print , l'esempio riportato NON è un esempio di "buon" codice ma aiuta a capire.

$a = "testo di prova";                                                          
print "risultato della prima print:".
      (print join( " " , "inizio seconda print",'$a',"=","$a","fine seconda print\n")).
      " fine prima print\n";

che produce:

inizio seconda print $a = testo di prova fine seconda print                           
risultato della prima print:1 fine prima print 

Entriamo nel dettaglio:

La prima riga è una istruzione Minima ed assegna a $a il valore "testo di prova".

Dalla seconda riga alla quarta riga è una istruzione composta:

c'è una "prima" funzione print alla quale gli si chiede di scrivere "risultato della prima print:" seguito da "qualcosa fra parentesi" seguito da " fine prima print\n".

Alla terza riga il "qualcosa fra parentesi" è di nuovo una print alla quale gli si chiede di scrivere una stringa che è il risultato ottenuto dalla funzione join.Alla join si chiede di "giuntare" con spazi 5 stringhe contenenti "inizio seconda print" '$a' "=" "$a" "fine seconda print\n".Come per l'algebra , prima di poter procedere occorre "agire" sulle parentesi più interne così il Perl risolve PRIMA le "funzioni" più interne e poi quelle più esterne.

Ecco perchè viene mostrata prima le scritte della seconda e poi le scritte della prima.

Succede così anche in meccanica : per poter montare un pezzo che ha a sua volta un pezzo interno, occorre montare prima l'oggetto interno e racchiuderlo in quello esterno. Si può pensare alla "matriosca".

Nel nostro caso dato che la funzione scrive a video, prima viene scritta la più interna e poi la più esterna.