Perl Language
Perl однострочные
Поиск…
Выполнить некоторый код Perl из командной строки
Простые однострочные могут быть указаны в качестве аргументов командной строки для perl, используя ключ -e
(подумайте «выполнить»):
perl -e'print "Hello, World!\n"'
Из-за правил цитирования Windows вы не можете использовать строки с одним кавычком, но должны использовать один из этих вариантов:
perl -e"print qq(Hello, World!\n)"
perl -e"print \"Hello, World!\n\""
Обратите внимание, что во избежание нарушения старого кода, с -e
можно использовать только синтаксис, доступный до Perl 5.8.x. Чтобы использовать что-либо новое, версия вашего perl может поддерживать, вместо этого используйте -E
. Например, использовать значение say
доступное от 5.10.0, плюс Unicode 6.0 от> = v5.14.0 (также использует -CO
чтобы убедиться, что STDOUT
печатает UTF-8):
perl -CO -E'say "\N{PILE OF POO}"'
Использование строк с двойными кавычками в однострочных окнах Windows
Для использования параметров командной строки Windows использует только двойные кавычки. Чтобы использовать двойные кавычки в perl one-liner (т. Е. Для печати строки с интерполированной переменной), вы должны избегать их с помощью обратных косых черт:
perl -e "my $greeting = 'Hello'; print \"$greeting, world!\n\""
Чтобы улучшить читаемость, вы можете использовать оператор qq()
:
perl -e "my $greeting = 'Hello'; print qq($greeting, world!\n)"
Печатать строки, соответствующие шаблону (PCRE grep)
perl -ne'print if /foo/' file.txt
Без учета регистра:
perl -ne'print if /foo/i' file.txt
Замените подстроку другим (PCRE sed)
perl -pe"s/foo/bar/g" file.txt
Или на месте:
perl -i -pe's/foo/bar/g' file.txt
В Windows:
perl -i.bak -pe"s/foo/bar/g" file.txt
Печать только определенных полей
perl -lane'print "$F[0] $F[-1]"' data.txt
# prints the first and the last fields of a space delimited record
Пример CSV:
perl -F, -lane'print "$F[0] $F[-1]"' data.csv
Печатать строки от 5 до 10
perl -ne'print if 5..10' file.txt
Редактировать файл на месте
Без резервной копии ( не поддерживается в Windows )
perl -i -pe's/foo/bar/g' file.txt
С резервной копией file.txt.bak
perl -i.bak -pe's/foo/bar/g' file.txt
С резервной копией old_file.txt.orig
в подкаталог backup
(при условии, что последний существует):
perl -i'backup/old_*.orig' -pe's/foo/bar/g' file.txt
Чтение всего файла в виде строки
perl -0777 -ne'print "The whole file as a string: --->$_<---\n"'
Примечание: -0777
- это просто соглашение. Любой -0400
и выше будет то же самое.
Загрузить файл в mojolicious
perl -Mojo -E 'p("http://localhost:3000" => form => {Input_Type => "XML", Input_File => {file => "d:/xml/test.xml"}})'
Файл d:/xml/test.xml
будет загружен на сервер, который прослушивает подключения на localhost:3000
( Source )
В этом примере:
-Mmodule
выполняет use module;
перед выполнением вашей программы
-E commandline
используется для ввода одной строки программы
Если у вас нет модуля ojo
вы можете использовать cpanm ojo
для ее установки
Чтобы узнать больше о том, как запустить perl, используйте perldoc perlrun
или прочитайте здесь