Perl Language
Jednowarstwowe Perl
Szukaj…
Wykonaj trochę kodu Perla z wiersza poleceń
Proste jednowierszowe mogą być określone jako argumenty wiersza poleceń do perla za pomocą przełącznika -e
(pomyśl „wykonaj”):
perl -e'print "Hello, World!\n"'
Ze względu na reguły cytowania w systemie Windows nie można używać ciągów pojedynczych, ale należy użyć jednego z tych wariantów:
perl -e"print qq(Hello, World!\n)"
perl -e"print \"Hello, World!\n\""
Zauważ, że aby uniknąć zerwania starego kodu, w przypadku -e
można używać tylko składni dostępnej do wersji Perl 5.8.x. Aby użyć czegoś nowszego, który może obsługiwać Twoja wersja perla, użyj zamiast tego opcji -E
. Np. Użyć say
dostępne od 5.10.0 i Unicode 6.0 od> = v5.14.0 (używa również -CO
aby upewnić się, że STDOUT
drukuje UTF-8):
perl -CO -E'say "\N{PILE OF POO}"'
Używanie cudzysłowów w jednowierszowych systemach Windows
System Windows używa tylko podwójnych cudzysłowów do zawijania parametrów wiersza poleceń. Aby użyć podwójnych cudzysłowów w perlu one-liner (tj. Aby wydrukować ciąg ze zmienną interpolowaną), musisz uciec przed nimi za pomocą ukośników odwrotnych:
perl -e "my $greeting = 'Hello'; print \"$greeting, world!\n\""
Aby poprawić czytelność, możesz użyć operatora qq()
:
perl -e "my $greeting = 'Hello'; print qq($greeting, world!\n)"
Drukuj linie pasujące do wzoru (PCRE grep)
perl -ne'print if /foo/' file.txt
Bez uwzględniania wielkości liter:
perl -ne'print if /foo/i' file.txt
Zastąp podciąg innym (PCRE sed)
perl -pe"s/foo/bar/g" file.txt
Lub na miejscu:
perl -i -pe's/foo/bar/g' file.txt
W systemie Windows:
perl -i.bak -pe"s/foo/bar/g" file.txt
Wydrukuj tylko niektóre pola
perl -lane'print "$F[0] $F[-1]"' data.txt
# prints the first and the last fields of a space delimited record
Przykład CSV:
perl -F, -lane'print "$F[0] $F[-1]"' data.csv
Drukuj linie od 5 do 10
perl -ne'print if 5..10' file.txt
Edytuj plik w miejscu
Bez kopii zapasowej ( nieobsługiwane w systemie Windows )
perl -i -pe's/foo/bar/g' file.txt
Z kopią zapasową file.txt.bak
perl -i.bak -pe's/foo/bar/g' file.txt
Z kopią zapasową old_file.txt.orig
w podkatalogu backup
(o ile ten drugi istnieje):
perl -i'backup/old_*.orig' -pe's/foo/bar/g' file.txt
Odczytywanie całego pliku jako łańcucha
perl -0777 -ne'print "The whole file as a string: --->$_<---\n"'
Uwaga: -0777
to tylko konwencja. Dowolne -0400
i wyższe byłyby takie same.
Prześlij plik do mojolicious
perl -Mojo -E 'p("http://localhost:3000" => form => {Input_Type => "XML", Input_File => {file => "d:/xml/test.xml"}})'
Plik d:/xml/test.xml
zostanie przesłany na serwer, który nasłuchuje połączeń na localhost:3000
( Źródło )
W tym przykładzie:
-Mmodule
wykonuje use module;
przed uruchomieniem programu
-E commandline
wiersz -E commandline
służy do wprowadzenia jednego wiersza programu
Jeśli nie masz modułu ojo
, możesz użyć cpanm ojo
aby go zainstalować
Aby przeczytać więcej na temat uruchamiania perla, użyj polecenia perldoc perlrun
lub przeczytaj tutaj