POD2-IT
view release on metacpan or search on metacpan
IT/perlfaq3.pod view on Meta::CPAN
grado di integrare Java e Perl. Consultate
http://www.oreilly.com/catalog/prkunix/ .
Perl 5.6 comprende il Java Perl Lingo, o JPL. JPL, che E<egrave> ancora
in fase di sviluppo, permette di chiamare codice Perl da Java.
Consultate jpl/README nell'albero delle directory della distribuzione sorgente
Perl.
=head2 Come posso far funzionare "#!perl" su [MS-DOS,NT,...]?
Per OS/2 usate semplicemente
extproc perl -S -vostri_switch
come prima linea nel file C<*.cmd> (C<-S> E<egrave> necessario a causa di un
bug nella gestione di "extproc" in cmd.exe). Per il DOS dovrete anzitutto
creare un batch file corrisposndente e codificare tutto in
C<ALTERNATIVE_SHEBANG> (consultate il file F<INSTALL> nella distribuzione
sorgente per maggiori informazioni).
L'installazione Win95/NT, quando usate il Perl di ActiveState, modifica il
Registry per associare l'estensione C<.pl> all'interprete perl. Se intallate
un'altra distribuzione, o magari compilate il vostro Perl Win95/NT personale
dai sorgenti standard utilizzando una versione Windows di gcc (ad esempio
con cygwin o mingw32), allora dovrete modificare voi stessi il registry.
Oltre ad associare C<.pl> all'interprete, gli utilizzatori di NT possono
usare C<SET PATHEXT=%PATHEXT%.PL> per essere in grado di lanciare programmi
come C<install-linux.pl> semplicemente digitando C<install-linux>.
I programmi Perl sotto MacOS "Classico" hanno gli appropriati Creator e Type, quindi
un doppio click su di essi causa l'invocazione dell'applicazione Perl.
Sotto Mac OS X, le applicazioni cliccabili possono essere fatte a partire da
qualsiasi script di tipo C<#!> utilizzando l'utility DropScript di Wil
Sanchez: http://www.wsanchez.net/software/ .
I<IMPORTANTE!>: Qualunque cosa facciate, PER FAVORE, non fate la pazzia di
copiare l'interprete perl nella vostra directory cgi-bin, al fine di far
sE<igrave> che i vostri programmi funzionino bene sotto un web server. Questo
E<egrave> un rischio di sicurezza ESTRAMAMENTE grande. Prendetevi il tempo
necessario per capire come fare le cose in maniera corretta.
=head2 Posso scrivere, dalla linea di comando, programmi Perl utili?
SE<igrave>. Leggete L<perlrun> per maggiori informazioni. Di seguito sono
riportati alcuni esempi. (Questi assumono che vengano applicate le regole di
quoting della shell Unix standard.)
# somma primo ed ultimo campo
perl -lane 'print $F[0] + $F[-1]' *
# identifica i file di testo
perl -le 'for(@ARGV) {print if -f && -T _}' *
# rimuove (la maggior parte de) i commenti dal programma C
perl -0777 -pe 's{/\*.*?\*/}{}gs' pippo.c
# cambia la data di un file ad un mese prima, sconfiggendo i reaper deamon
perl -e '$X=24*60*60; utime(time(),time() + 30 * $X,@ARGV)' *
# trova il primo uid inutilizzato
perl -le '$i++ while getpwuid($i); print $i'
# visualizza il path delle pagine man
echo $PATH | perl -nl -072 -e '
s![^/+]*$!man!&&-d&&!$s{$_}++&&push@m,$_;END{print"@m"}'
OK, l'ultimo in realtE<agrave> partecipava all'Obfuscated Perl Contest. :-)
=head2 PerchE<eacute> gli one-liner Perl non funzionano sul mio sistema DOS/Mac/VMS?
Di solito il problema E<egrave> che l'interprete dei comandi di questi
sistemi ha idee sul quoting piuttosto differenti rispetto a quelle delle
shell Unix nelle quali gli one-liner sono stati creati. Su alcuni sistemi,
potreste dover cambiare gli apici singoli in doppi apici, cosa che I<NON>
dovete fare in Unix o nei sistemi Plan9. Potreste inoltre dover cambiare
un singolo % in un %%.
Ad esempio:
# Unix
perl -e 'print "Ciao Mondo\n"'
# DOS, etc.
perl -e "print \"Ciao Mondo\n\""
# Mac
print "Ciao Mondo\n"
(e poi Run "Myscript" oppure Shift-Mela-R)
# VMS
perl -e "print ""Ciao Mondo\n"""
Il problema E<egrave> che nessuno di questi esempi E<egrave> affidabile:
dipende dall'interprete dei comandi. In ambiente Unix, i primi due esempi
spesso funzionano. In ambiente DOS E<egrave> del tutto possibile che nessuno
dei due funzioni. Se la shell fosse 4DOS, probabilmente avreste miglior
fortuna con qualcosa del genere:
perl -e "print <Ctrl-x>"Ciao Mondo\n<Ctrl-x>""
Su Mac, dipende dall'ambiente che state usando. La shell MacPerl, oppure
MPW, E<egrave> in larga misura analoga ad una shell Unix per quanto riguarda
il supporto di diverse varianti del quoting, eccettuato il fatto che adopera
liberamente i caratteri non-ASCII come caratteri di controllo.
L'uso di qq(), q() e qx() anzichE<eacute> dei "doppi apici", 'singoli apici' e
`apici inversi' potrebbe rendere gli one-liner piE<ugrave> semplici da
scrivere.
Non c'E<egrave> una soluzione generale. E<Egrave> una situazione confusa.
[Parte di questa risposta E<egrave> un contributo di Kenneth Albanowski.]
=head2 Dove posso imparare qualcosa sulla programmazione CGI o Web in Perl?
Per quanto riguarda i moduli, procuratevi CGI o LWP da CPAN. Per i libri di
testo, consultate i due specifici indicati nella domanda riguardante i libri.
Per problemi e domande relative al web, come "PerchE<eacute> mi capitano
errori 500" oppure "PerchE<eacute> non funziona dal browser quando funziona
benissimo dalla linea di comando", consultate le guide alla risoluzione dei
problemi ed i riferimenti in L<perlfaq9> o nella CGI MetaFAQ (NdT: in lingua
( run in 1.663 second using v1.01-cache-2.11-cpan-5a3173703d6 )