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



 


indietro

[22] Come espando le chiamate a funzione in una stringa?

(contributo di brian d foy)

Questo è documentato in perlref e sebbene non sia la cosa piè semplice da leggere, funziona davvero. In ognuno di questi esempi, chiamiamo la funzione all'interno delle parentesi utilizzate per deferenziare un riferimento. Se abbiamo più di un valore restituito, possiamo costruire e deferenziare un array anonimo. In questo caso, chiamiamo la funzione in contesto di lista.

	print "I valori dell'istante di tempo sono @{ [localtime] }.\n";

Se vogliamo chiamare la funzione in contesto scalare, dobbiamo fare un po' più di lavoro. All'interno delle parentesi possiamo avere davvero qualsiasi tipo di codice, dunque si deve semplicemente terminare con il riferimento scalare, sebbene come questo si debba fare sia lasciato a voi, e potete usare del codice all'interno delle parentesi.

	print "L'istante di tempo e` ${\(scalar localtime)}.\n"
	print "L'istante di tempo e` ${ my $x = localtime; \$x }.\n";

Se la vostra funzione restituisce già un riferimento, non è necessario che vi creiate il riferimento.

	sub marcatemporale { my $t = localtime; \$t }
	print "L'istante di tempo e` ${ marcatemporale() }.\n";

Anche il modulo Interpolation può fare un sacco di cose magiche per voi. Potete specificare il nome di una variabile, in questo caso E, per impostare un hash sottoposto a tie che vi faccia l'interpolazione. Possiede anche diversi altri metodi per farlo.

	use Interpolation E => 'eval';
	print "I valori dell'istante di tempo sono $E{localtime()}.\n";

Nella maggior parte dei casi, è probabilmente più semplice utilizzare la concatenazione di stringhe, che inoltre forza un contesto scalare.

	print "L'istante di tempo e` " . localtime . ".\n";

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