[Roma.pm] join

Marco Balestra balestra at cesmail.net
Sat Mar 4 11:35:00 PST 2006


On 04/mar/06, at 20:14, mauro morichi wrote:

> vediamo se qualcuno mi chiarisce sto dubbio.
> secondo la documentazione, la funzione join accetta due parametri,  
> il primo
> potremo chiamarlo separatore, il secondo e' l'array o l'elenco dei  
> valori da
> unire.

siccome sono fondamentamente un creativo :-D vado ad intuito, "a  
pelle", e non a documentazione.

	join STRING, SCALAR|ARRAY { , SCALAR|ARRAY }

Backus-Naur mi perdoni, ma da quel che vedo in effetti potrei pensare  
che join prenda n parametri (con n > 1) di cui il primo e`  
l'espressione stringa utilizzata per unire insieme tutti i successivi.
Poi rifletto sul fatto che dopo il primo argomento posso mescolare  
sia scalari che array, e quindi ci ripenso e nego tutto :-)

> nessun warning ricevuto, e a una verifica del risultato ottengo  
> sempre uno
> scalare. fino a qui mi pare tutto ok.

ma cosa hai messo dentro? cosa viene fuori? Vabbeh, lo provo...

	perl -e "@foo = ('a','b','c'); print join @foo;"

Non esce niente :-)
Presumibilmente usa il primo parametro (@foo) in un contesto scalare,  
e non avendo nulla da unire torna una stringa vuota.

Poi rifletto che dada mi terrebbe una lezione sulla supercazzola  
dereferenziata, allora smuovo il mio micidiale culo di piombo e ci  
provo:

	perl -e "@foo = ('a','b','c'); print join @foo,'x','y';"

Stampa "x3y"... incredibile, ci ho preso! :-D

> quindi quello scalare non e' quello che appare.
> Che cacchio e' diventato? cosa contiene? a occhio sembra una  
> normalissima
> stringa, ma in pratica contiene qualche cosa d'altro che la mia  
> inesperienza
> non mi permette di arrivarci....

E` solo una stringa vuota :-)
-- 
Marco Balestra
IT consultant
balestra at cesmail.net





More information about the Roma mailing list