Newsgroup: it.comp.lang.perl
Titolo: PERL non fà echo su schermo !

Assurdo, ma non capisco propio dove sbaglio !!
Ho installato una Mandrake 8.0 configurazione standard (quindi con perl già
installato)
Se lancio qualunque script perl che contenga dei print, questi non vengono
eseguiti !
ad esempio, in riga di comando:   perl -e "print  'PIPPO';  "
mi ritorna il prompt bash senza alcun errore !!!
saluti

Luca wrote:

Prima di gridare allo scandalo prova a ragionare ed ad aggiungere un \n 
alla fine della stringa ;-)
-- 
Saluti,
Giancarlo

 alla fine della stringa ;-)
Non e` cosi` immediato: se e` vero che la sequenza "\n" richiede il 
flush dei buffer di I/O, anche la terminazione corretta dell'esecuzione 
dello script dovrebbe ottenere lo stesso risultato. Ed infatti, la riga 
di comando dell'OP funziona correttamente sul mio sistema (come su molti 
altri, immagino). Il fatto e` con i dati esposti nel messaggio originale 
e` difficile fare qualsiasi assunzione. Consiglio di fare qualche prova 
con l'esplicitazione dello stream di uscita
	perl -e "print STDOUT 'Pippo'"
e con la redirezione su file
	perl -e "print 'Pippo'" > pippo.txt
-- 
Baci,
Mony

 flush dei buffer di I/O, anche la terminazione corretta
C'e' poco da filosofeggiare... e' come dico io e basta... non e 
problema di flush ma semplicemnte del fatto che senza il \n la shell 
stampa il promp sopra la stringa stampata, tutto qui..per provarlo:
perl -e "print  'pippo'"; echo
in questo modo l'echo di shell manda a capo il terminale e si vede la 
scritta pippo.
Su Win32 vede l'output, probabilmente, ma non son certo di come 
funzioni, la shell dos gestishe diversamente da bash (e dalle altre 
shell unix) la stampa del prompt dopo l'eseguzione di un comando.
-- 
Saluti,
Giancarlo

 stampa il promp sopra la stringa stampata, tutto qui..per provarlo:
Non ho intenzione di polemizzare ma non e` cosi`. ;)
Qualsiasi shell degna di questo nome, e quindi sia la bash che la csh 
che quella del DOS, non sovrascrivono con il prompt l'output dell'ultimo 
programma eseguito, caso mai lo affiancano.
	localhost $ perl -e "print 'PIPPO'"
	PIPPOlocalhost $
Il risultato di cui parli tu si ottiene, su bash, con
	localhost $ perl -e 'print "pippo\r"'
	localhost $
Comunque, e` probabile che l'OP confonda l'affiancamento con la 
sovrascrittura.
-- 
Baci,
Mony

 sovrascrittura.
Tutto vero a meno che $PROMP (o chi per esso) non contengua a sua volta 
un \r o qualcosa di simile ;-)
Io direi che provare un 
perl -e 'print "pippo"'; echo 
non fa male a nessuno e ci dice esattamente dove sta il problema.
-- 
Saluti,
Giancarlo

Sono commosso dalla celerità e l'interessamento.
comunque :
    perl -e "print STDOUT 'Pippo'"        # non funge, avevo già fatto
questo tentativo
    perl -e "print 'Pippo'" > pippo.txt       # mai provato, comunque
funziona
   con "\n "  alla fine non funziona
   perl -e "print  'pippo'"; echo               # FUNZIONA !!
  Vi ho seguio con il discorso ed è tutto chiaro. Cosa mi consigliate di
utilizzare nello script perl ? spero non un system('echo') dopo ogni print
:):)
grazie

Ancora una prova interessante :
perl -e "print 'pippo' "; > /dev/pts/0 (mio device)
o perl -e "print 'pippo' "; > stdout
non funzionano !!

    con "\n "  alla fine non funziona
Attento... se hai messo il \n dentro a singolo apice (') non viene 
processato come newline ma solo come la seguenza di carettere \ e n ;-)
in un programma stampa tranquillo e metti il \n, ricordati che senza il 
perl non va a capo.
-- 
Saluti,
Giancarlo

>Grazie a tutti e due
Giuro che su altre bash non avevo questo problema.......

 Giuro che su altre bash non avevo questo problema.......
Sicuro sia bash? a me zsh da quel problema sia su Linux che su AIX, 
prova un poco echo $SHELL
-- 
Saluti,
Giancarlo

si, è bash
cmq, mi rassegno, ora funziona e posso lavorare
grazie, ciao :)