Perl Language
Perl enfoder
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):
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