Sök…


Kör viss Perl-kod från kommandoraden

Enkla enfodrar kan specificeras som kommandoradsargument för perl med hjälp av -e omkopplaren (tänk "köra"):

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

På grund av citeringsregler i Windows kan du inte använda strängar med en citationstecken utan måste använda en av dessa varianter:

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

Observera att endast syntax som är tillgänglig upp till Perl 5.8.x kan användas med -e att undvika att gammal kod bryts. -E istället -E att använda något som är nyare i din perl-version. Till exempel att använda say tillgängligt från 5.10.0 på plus Unicode 6.0 från> = v5.14.0 (använder också -CO att se till att STDOUT skriver ut UTF-8):

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

Använda dubbla citerade strängar i Windows-enfodrar

Windows använder endast dubbla citat för att radera kommandoradsparametrar. För att använda dubbla citat i perl one-liner (dvs för att skriva ut en sträng med en interpolerad variabel), måste du undgå dem med backstänk:

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

För att förbättra läsbarheten kan du använda en qq() -operatör:

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

Skriv ut rader som matchar ett mönster (PCRE grep)

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

Fallet okänslig:

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

Byt ut en substring med en annan (PCRE sed)

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

Eller på plats:

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

På Windows:

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

Skriv endast ut vissa fält

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

CSV-exempel:

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

Skriv ut raderna 5 till 10

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

Redigera filen på plats

Utan en säkerhetskopia ( stöds inte på Windows )

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

Med en säkerhetskopia file.txt.bak

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

Med en säkerhetskopia old_file.txt.orig i underkatalogen för backup (förutsatt att den senare finns):

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

Läser hela filen som en sträng

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

Obs: -0777 är bara en konvention. Alla -0400 skulle vara desamma.

Ladda upp filen till mojolicious

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

Fil d:/xml/test.xml kommer att laddas upp till servern som lyssnar anslutningar på localhost:3000 ( källa )

I detta exempel:

-Mmodule kör use module; innan du kör ditt program
-E commandline används för att ange en programrad
Om du inte har någon ojo modul kan du använda cpanm ojo kommandot för att installera den

Om perldoc perlrun läsa mer om hur du kör perl använder du perldoc perlrun kommando eller läser här



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow