POD2-FR

 view release on metacpan or  search on metacpan

FR/perlfaq3.pod  view on Meta::CPAN

Vous pouvez intégrer Java et Perl avec le Perl Resource Kit d'O'Reilly
Media. Voir L<http://www.oreilly.com/catalog/prkunix/>.

Perl 5.6 vient avec Java Perl Lingo (ou JPL). JPL, qui est encore en
développement, permet d'appeler du code Perl depuis Java. Lire le
fichier jpl/README dans l'arborescence des sources Perl.

=head2 Comment faire fonctionner C<#!perl> sur [MS-DOS,NT,...]E<nbsp>?

Pour OS/2 utilisez juste

    extproc perl -S -your_switches

comme première ligne dans le fichier C<*.cmd> (C<-S> est dû à un bug
dans la gestion de "extproc" par cmd.exe). Pour DOS, il faudrait
d'abord que quelqu'un créer un fichier batch similaire puis le codifie
dans C<ALTERNATIVE_SHEBANG> (voir le fichier F<INSTALL> dans la
distribution pour plus d'informations).

L'installation sur Win95/98/NT, avec le portage Perl de ActiveState,
va modifier la table de registre pour associer l'extension C<.pl> avec
l'interpréteur perl. Si vous utilisez un autre portage, peut-être
même en compilant votre propre Perl Win95/98/NT à l'aide d'une version
Windows de gcc (e.g. avec cygwin ou mingw32), alors vous devrez
modifier la base de registres vous-même. En plus d'associer C<.pl>
avec l'interpréteur, les gens sous NT peuvent utiliser C<SET
PATHEXT=%PATHEXT%;.PL> pour qu'ils puissent exécuter le programme
C<install-linux.pl> en tapant simplement C<install-linux>.

Sous "Classic" ou MacOS, les programmes Perl auront les attributs
Créateur et Type appropriés, un double-clic dessus appellera donc
l'application Perl. Sous Mac OS X, les scripts utilisant une ligne
C<#!...> peuvent être transformés en vraies applications via
l'utilitaire DropScript de Wil Sanchez (L<http://www.wsanchez.net/software/>).

I<IMPORTANT!>E<nbsp>: Quoi que vous fassiez, SURTOUT ne vous contentez pas
seulement d'installer votre interpréteur dans votre répertoire
cgi-bin, pour faire fonctionner votre serveur web avec vos programmes.
C'est un ÉNORME risque de sécurité. Prenez le temps de bien vérifier
que tout fonctionne correctement.

=head2 Puis-je écrire des programmes Perl pratiques sur la ligne de commandesE<nbsp>?

Oui. Lisez L<perlrun> pour plus d'informations. Voici quelques
exemples.  (on considère ici un shell Unix avec les règles standard
d'apostrophes.)

    # Additionner le premier et lz dernier champs
    perl -lane 'print $F[0] + $F[-1]' *

    # Identifier des fichiers-textes
    perl -le 'for(@ARGV) {print if -f && -T _}' *

    # enlever la plupart des commentaires d'un programme C
    perl -0777 -pe 's{/\*.*?\*/}{}gs' foo.c

    # Rajeunir un fichier d'un mois
    perl -e '$X=24*60*60; utime(time(),time() + 30 * $X,@ARGV)' *

    # Trouver le premier uid non utilisé
    perl -le '$i++ while getpwuid($i); print $i'

    # Afficher des chemins raisonnables vers des répertoires man
    echo $PATH | perl -nl -072 -e '
        s![^/+]*$!man!&&-d&&!$s{$_}++&&push@m,$_;END{print"@m"}'

OK, le dernier n'est pas très simple.E<nbsp>:-)

=head2 Pourquoi les commandes Perl à une ligne ne fonctionnent-elles pas sur mon DOS/Mac/VMSE<nbsp>?

Le problème est généralement que les interpréteurs de commandes sur
ces systèmes ont des points de vue différents sur les apostrophes,
guillemets, etc, par rapport aux shell Unix sous lesquels a été créée
cette possibilité de commande à une ligne. Sur certains systèmes, vous
devrez changer les apostrophes en guillemets, ce que vous ne devez
I<PAS> faire sur Unix ou sur des systèmes Plan9. Vous devrez aussi
probablement changer un simple % en %%.

Par exempleE<nbsp>:

    # Unix
    perl -e 'print "Hello world\n"'

    # DOS, etc.
    perl -e "print \"Hello world\n\""

    # Mac
    print "Hello world\n"
     (then Run "Myscript" or Shift-Command-R)

    # MPW
    perl -e 'print "Hello world\n"'

    # VMS
    perl -e "print ""Hello world\n"""

Le problème est que rien de tout cela n'est garantiE<nbsp>: cela
dépend de l'interpréteur de commande. Sous Unix, les deux premiers
exemples marchent presque toujours. Sous DOS il est bien possible
qu'aucun d'entre eux ne fonctionne. Si 4DOS est l'interpréteur de
commandes, vous aurez probablement plus de chances avec ceciE<nbsp>:

  perl -e "print <Ctrl-x>"Hello world\n<Ctrl-x>""

Sous Mac, cela dépend de l'environnement que vous utilisez. Le shell
MacPerl ou MPW, ressemble plutôt aux shells Unix car il accepte pas
mal de variantes dans les apostrophes, guillemets, etc, excepté qu'il
utilise librement les caractères de contrôle Mac non ASCII comme des
caractères normaux.

L'usage de qq(), q() et qx(), à la place de "guillemets",
d''apostrophes' et d'`accents graves` peut rendre les programmes sur
une ligne plus faciles à écrire.

Il n'y a pas de solution globale à tout cela. Il y a un manque.

[Kenneth Albanowski a contribué à certaines de ces réponses.]

=head2 Où puis-je en apprendre plus sur la programmation CGI et Web en PerlE<nbsp>?

Pour les modules, prenez les modules CGI ou LWP au CPAN. Pour les



( run in 0.734 second using v1.01-cache-2.11-cpan-ceb78f64989 )