Perl Language
Perl one-liners
Recherche…
Exécuter du code Perl en ligne de commande
De simples lignes simples peuvent être spécifiées comme arguments de ligne de commande pour perl en utilisant le commutateur -e
(pensez "execute"):
perl -e'print "Hello, World!\n"'
En raison de règles de citation de Windows, vous ne pouvez pas utiliser de chaînes entre guillemets simples, mais vous devez utiliser l'une de ces variantes:
perl -e"print qq(Hello, World!\n)"
perl -e"print \"Hello, World!\n\""
Notez que pour éviter de casser l'ancien code, seule la syntaxe disponible jusqu'à Perl 5.8.x peut être utilisée avec -e
. Pour utiliser quelque chose de plus récent, votre version de perl peut prendre en charge, utilisez plutôt -E
. Par exemple, utiliser say
disponible à partir de 5.10.0 sur Unicode 6.0 à partir de> = v5.14.0 (utilise également -CO
pour s’assurer que STDOUT
imprime UTF-8):
perl -CO -E'say "\N{PILE OF POO}"'
Utilisation de chaînes entre guillemets doubles dans les guichets uniques de Windows
Windows utilise uniquement des guillemets doubles pour envelopper les paramètres de ligne de commande. Pour utiliser des guillemets doubles dans perl one-liner (c'est-à-dire pour imprimer une chaîne avec une variable interpolée), vous devez leur échapper avec des barres obliques inverses:
perl -e "my $greeting = 'Hello'; print \"$greeting, world!\n\""
Pour améliorer la lisibilité, vous pouvez utiliser un opérateur qq()
:
perl -e "my $greeting = 'Hello'; print qq($greeting, world!\n)"
Imprimer des lignes correspondant à un motif (PCRE grep)
perl -ne'print if /foo/' file.txt
Insensible à la casse:
perl -ne'print if /foo/i' file.txt
Remplacer une sous-chaîne par une autre (PCRE sed)
perl -pe"s/foo/bar/g" file.txt
Ou en place:
perl -i -pe's/foo/bar/g' file.txt
Sous Windows:
perl -i.bak -pe"s/foo/bar/g" file.txt
Imprimer seulement certains champs
perl -lane'print "$F[0] $F[-1]"' data.txt
# prints the first and the last fields of a space delimited record
Exemple CSV:
perl -F, -lane'print "$F[0] $F[-1]"' data.csv
Imprimer les lignes 5 à 10
perl -ne'print if 5..10' file.txt
Modifier le fichier sur place
Sans copie de sauvegarde ( non prise en charge sous Windows )
perl -i -pe's/foo/bar/g' file.txt
Avec une copie de sauvegarde file.txt.bak
perl -i.bak -pe's/foo/bar/g' file.txt
Avec une copie de sauvegarde old_file.txt.orig
dans le sous-répertoire backup
(à condition que ce dernier existe):
perl -i'backup/old_*.orig' -pe's/foo/bar/g' file.txt
Lecture du fichier entier sous forme de chaîne
perl -0777 -ne'print "The whole file as a string: --->$_<---\n"'
Note: Le -0777
est juste une convention. N'importe quel -0400
et au-dessus serait le même.
Télécharger le fichier dans mojolicious
perl -Mojo -E 'p("http://localhost:3000" => form => {Input_Type => "XML", Input_File => {file => "d:/xml/test.xml"}})'
Le fichier d:/xml/test.xml
sera chargé sur le serveur qui écoute les connexions sur localhost:3000
( Source )
Dans cet exemple:
-Mmodule
exécute le use module;
avant d'exécuter votre programme
-E commandline
permet d'entrer une ligne de programme
Si vous n'avez pas de module ojo
vous pouvez utiliser la commande cpanm ojo
pour l'installer
Pour en savoir plus sur l'exécution de perl, utilisez la commande perldoc perlrun
ou lisez ici