A rigor di termini, niente. A livello stilistico, non è un buon
modo per scrivere codice manutenibile. Il Perl ha diversi operatori per
l'esecuzione di comandi esterni. I backtick sono uno di questi; essi collezionano
l'output dal comando per usarlo nel vostro progamma. La funzione system è
un'altra; essa non fa così.
Scrivere backtick nel vostro programma manda un chiaro segnale a coloro
che leggono il vostro codice che volete raccogliere l'output del comando.
Perché mandare un chiaro segnale che non è vero?
Si consideri questa linea:
`cat /etc/termcap`;
Avete scordato di controllare $? per vedere se il programma è stato anche
eseguito correttamente. Anche se scrivete
print `cat /etc/termcap`;
questo potrebbe e probabilmente dovrebbe essere scritto come
system("cat /etc/termcap") == 0
or die "il programm cat non e` andato a buon fine!";
con il quale si otterrà l'output velocemente (mentre viene generato,
invece che soltanto alla fine) e si controlla anche il valore
restituito.
system() dà la possibilità di decidere se la sostituzione dei
caratteri jolly deve essere effettuata dalla shell, con i backticks
ciò non è possibile.
|