=head1 NOME X perlfunc - Le funzioni integrate in Perl =head1 DESCRIZIONE Le funzioni in questa sezione possono comparire come termini in una espressione. Esse cadono in due categorie principali: operatori di lista e operatori unari con nome. La differenza consiste nella relazione di precedenza con una virgola che segue. (Consultate la tabella delle precedenze in L). Gli operatori di lista prendono piE di un argomento, mentre gli operatori unari non accettano mai piE di un argomento. Quindi, la virgola termina l'argomento di un operatore unario, ma separa semplicemente gli argomenti di un operatore di lista. Un operatore unario solitamente fornisce un contesto scalare al suo argomento, mentre un operatore di lista puE conferire sia un contesto scalare che uno di lista ai suoi argomenti. Se conferisce entrambi i contesti, allora gli argomenti scalari verranno per primi, seguiti dall'argomento lista. (Va notato che ci puE essere uno solo di tali argomenti). Per esempio, splice() ha tre argomenti scalari seguiti da una lista, mentre gethostbyname() ha quattro argomenti scalari. Nelle descrizioni della sintassi che seguono, gli operatori di lista che si aspettano una lista (e che forniscono un contesto di lista agli elementi della lista) vengono mostrati con LISTA come argomento. Tale lista puE essere costituita da una combinazione qualunque di argomenti scalari o valori di lista; i valori di lista saranno inclusi nella lista come se ogni singolo elemento fosse interpolato in quel punto, formando un valore di lista unico, piE lungo. Delle virgole dovrebbero separare gli elementi della LISTA. Ogni funzione dell'elenco sottostante puE essere usata o meno con parentesi attorno ai propri argomenti. (La descrizione della sintassi omette le parentesi). Se usate le parentesi, la semplice regola (benchE talvolta sorprendente) E questa: I una funzione, dunque I> una funzione, e la precedenza non importa. Altrimenti E un operatore di lista o un operatore unario, e allora la precedenza conta. Ed uno spazio vuoto tra la funzione e la parentesi aperta non conta, quindi a volte dovete stare attenti: print 1+2+4; # Stampa 7. print(1+2) + 4; # Stampa 3. print (1+2)+4; # Anche questo stampa 3! print +(1+2)+4; # Stampa 7. print ((1+2)+4); # Stampa 7. Se lanciate Perl con lo switch B<-w>, allora vi puE avvertire a questo proposito. Per esempio, la terza linea produce: print (...) interpreted as function at - line 1. Useless use of integer addition in void context at - line 1 [print (...) E interpretato come funzione alla linea 1. Utilizzo inutile di una addizione intera in un contesto vuoto alla linea 1, NdT] Un esiguo numero di funzioni non accetta alcun argomento, e quindi non funziona nE come operatore di lista nE come operatore unario. Sono incluse in questo gruppo funzioni come C