Qual è l'utilizzo specifico di print
, printf
e sprintf
in Perl?Differenza tra printf, print e sprintf in Perl?
Tutte e tre le parole chiave sono utilizzate per scopi di stampa, ma qualcuno può distinguerla brevemente?
Qual è l'utilizzo specifico di print
, printf
e sprintf
in Perl?Differenza tra printf, print e sprintf in Perl?
Tutte e tre le parole chiave sono utilizzate per scopi di stampa, ma qualcuno può distinguerla brevemente?
breve:
consultare i manuali:
lungo:
print
è la funzione di uscita predefinita. Lo fa senza formattazione, ma può aggiungere un'interruzione di linea se Perl viene chiamato con -l
:
print $foo;
print "Hello $world";
print $filehandle $something;
sprintf
è un formattatore e non fa alcuna stampa a tutti:
$result = sprintf('The %s is %d', 'answer', 42);
printf
è lo stesso sprintf
, ma in realtà stampa il risultato:
printf 'This is question %d on %s', 36882022, 'StackOverflow';
Vedere la sprintf
documentation per maggiori dettagli su segnaposti/formato valido stringhe.
A partire dal 5.10, Perl supporta anche say
che è fondamentalmente un print
più un ulteriore \n
.
E forse dovresti aggiungere anche 'say'. – simbabque
print
solo uscite.
printf
prende una stringa di formattazione come "% 3f" e la usa per formattare l'output.
sprintf
è lo stesso di printf tranne che in realtà non emette nulla. Restituisce una stringa formattata.
Gli altri coprivano i punti principali, ma un altro piccolo fatto importante è che è possibile passare una lista a print
, proprio come die
. Può essere conveniente a volte ed è apparentemente più efficiente della concatenazione se si inizia da una lista.
ad es.
sub log_with_timestamp {
my $timestamp = get_timestamp();
print $timestamp, ' ', @_, "\n";
}
'printf = print sprintf';) –
@ el.pescado. Non proprio. 'perl -e '@t = ("% s \ n "," foo "); print sprintf @t; printf @ t' –
mob
In che modo questa domanda ha ottenuto un punteggio di 11, mentre è chiarissimo che c'era assolutamente nessuna ricerca o addirittura investimento di sforzo di lettura? –