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=dos
in vi
).
Sembrerebbe che almeno nella mia installazione di Ubuntu Linux 12.04 LRS, i vecchi strumenti dos2unix
e unix2dos
non 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 dos2unx
e unix2dos
cioè il proprio .bashrc
file:
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
.