Zoeken…


Voer een Perl-code uit vanaf de opdrachtregel

Eenvoudige one-liners kunnen worden opgegeven als opdrachtregelargumenten die perl kunnen gebruiken met de schakelaar -e (denk aan "uitvoeren"):

perl -e'print "Hello, World!\n"'

Vanwege Windows-citatieregels kunt u geen enkele aanhalingstekens gebruiken, maar moet u een van deze varianten gebruiken:

perl -e"print qq(Hello, World!\n)"
perl -e"print \"Hello, World!\n\""

Merk op dat om te voorkomen dat oude code wordt verbroken, alleen syntaxis beschikbaar tot Perl 5.8.x kan worden gebruikt met -e . Gebruik in plaats daarvan -E om iets nieuws te gebruiken dat uw perl-versie mogelijk ondersteunt. Bijvoorbeeld om say te gebruiken beschikbaar vanaf 5.10.0 op plus Unicode 6.0 vanaf> = v5.14.0 (gebruikt ook -CO om ervoor te zorgen dat STDOUT UTF-8 afdrukt):

5.14.0
perl -CO -E'say "\N{PILE OF POO}"'

Tekenreeksen met dubbele aanhalingstekens gebruiken in Windows one-liners

Windows gebruikt alleen dubbele aanhalingstekens om opdrachtregelparameters te verpakken. Om dubbele aanhalingstekens in perl one-liner te gebruiken (dat wil zeggen om een string met een geïnterpoleerde variabele af te drukken), moet u deze met backslashes omzeilen:

perl -e "my $greeting = 'Hello'; print \"$greeting, world!\n\""

Om de leesbaarheid te verbeteren, kunt u een qq() -operator gebruiken:

perl -e "my $greeting = 'Hello'; print qq($greeting, world!\n)"

Lijnen die overeenkomen met een patroon (PCRE grep)

perl -ne'print if /foo/' file.txt

Case-insensitive:

perl -ne'print if /foo/i' file.txt

Vervang een substring door een andere (PCRE sed)

perl -pe"s/foo/bar/g" file.txt

Of ter plaatse:

perl -i -pe's/foo/bar/g' file.txt

Op Windows:

perl -i.bak -pe"s/foo/bar/g" file.txt

Alleen bepaalde velden afdrukken

perl -lane'print "$F[0] $F[-1]"' data.txt
# prints the first and the last fields of a space delimited record

CSV-voorbeeld:

perl -F, -lane'print "$F[0] $F[-1]"' data.csv

Druk lijnen 5 tot 10 af

perl -ne'print if 5..10' file.txt

Bewerk het bestand ter plekke

Zonder back-up ( niet ondersteund op Windows )

perl -i -pe's/foo/bar/g' file.txt

Met een reservekopie file.txt.bak

perl -i.bak -pe's/foo/bar/g' file.txt

Met een back-up old_file.txt.orig in de backup submap (op voorwaarde dat deze bestaat):

perl -i'backup/old_*.orig' -pe's/foo/bar/g' file.txt

Het hele bestand lezen als een tekenreeks

perl -0777 -ne'print "The whole file as a string: --->$_<---\n"'

Opmerking: de -0777 is slechts een conventie. Elke -0400 en hoger zou hetzelfde zijn.

Bestand uploaden naar mojolicious

perl -Mojo -E 'p("http://localhost:3000" => form => {Input_Type => "XML", Input_File => {file => "d:/xml/test.xml"}})'

Bestand d:/xml/test.xml wordt geüpload naar de server die naar verbindingen luistert op localhost:3000 ( bron )

In dit voorbeeld:

-Mmodule voert use module; voordat u uw programma uitvoert
-E commandline wordt gebruikt om een regel van het programma in te voeren
Als u geen ojo module hebt, kunt u de opdracht cpanm ojo gebruiken om deze te installeren

Om meer te lezen over het uitvoeren van perl, gebruik de opdracht perldoc perlrun of lees hier



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow