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):

5.14.0
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



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow