Usa vi per convertire lo script Perl, diciamo perl_script.pl, nel formato file UNIX ( :set ff=unix) come segue:
vi perl_script.pl
Ora in vi, cambia il formato del file in UNIX, salva il file e quindi esci, come in:
:set ff=unix
:wq
Ora esegui la tua sceneggiatura come prima.
Molto probabilmente il problema è che il file è stato creato o convertito in un altro formato diverso dal formato UNIX, forse DOS ( :set ff=dosin vi).
Sembrerebbe che almeno nella mia installazione di Ubuntu Linux 12.04 LRS, i vecchi strumenti dos2unixe unix2dosnon siano installati di default. Questo sarebbe stato quello che avrei suggerito se fossero prontamente disponibili - quindi l'hack sopra per farti andare. Dal momento che non sono attualmente disponibili, ecco un modo piuttosto semplice per ripristinarli:
$ sudo apt-get install tofrodos
$ sudo ln -s /usr/bin/fromdos /usr/bin/dos2unix
$ sudo ln -s /usr/bin/todos /usr/bin/unix2dos
Ora, per vedere come usare dos2unix, eseguire un man fromdos, e per vedere come usare unix2dos, eseguire un man todos.
Aggiungere quanto segue a uno dei file di avvio della shell per codificare il proprio dos2unxe unix2doscioè il proprio .bashrcfile:
dos2unix(){
tr -d '\r' < "$1" > t
mv -f t "$1"
}
dos2unix file
unix2dos(){
sed -i 's/$/\r/' "$1"
}
unix2dos file
Poiché è stato più semplice eseguire quest'ultima codifica, questo è quello che ho fatto per il mio server OSX, piuttosto che capire quale pacchetto trovare e portare su OSX.
#!/usr/bin/perl); forse terminatore di fine linea sbagliato ?! Controlla se il tuo programma viene eseguito quando lo invochi conperl scriptname.pl.