2009-02-03 20 views
35

stampa "$ foo", "AAAAAAAA", $ pippo, "BBBBBBBB";Come posso separare le variabili Perl dal testo nelle stringhe interpolate?

Diciamo che voglio utilizzare questo codice con un print <<EOF;:

print <<EOF; 
    $fooAAAAAAAA$fooBBBBBBBB"; 
EOF 

Questo non funzionerà perché il Perl pensa ho una variabile denominata $ fooAAAAAAAA. Come posso usare facilmente print << con tali linee quando ho un lungo test da stampare?

risposta

54

Uso ${foo}:

print <<EOF; 
    ${foo}AAAAAAAA${foo}BBBBBBBB"; 
EOF 
+0

come una piccola parte, questo metodo funziona anche in una stringa normale: print "$ {pippo} bar"; – user55400

4

Ecco un altro modo per farlo utilizzando printf:

printf << EOF, $foo, $foo; 
    %dAAAAA%dBBBBBBB 
EOF 

Cioè, supponendo che si desidera stampare $foo come numero decimale. È possibile sostituire %d con qualsiasi formato necessario.