Вопросы с тегом «perl»

88
В чем разница между файлами .pm (модуль Perl) и .pl (сценарий Perl) в Perl?

В чем разница между .pm(модулем Perl) и .plфайлом (скриптом Perl)? Скажите, пожалуйста, почему мы возвращаемся 1из файла. Если возвращается 2 или что-то еще, это не вызывает ошибок, так почему же мы возвращаемся 1из модуля Perl?...

87
Как эффективно рассчитать текущее стандартное отклонение?

У меня есть массив списков чисел, например: [0] (0.01, 0.01, 0.02, 0.04, 0.03) [1] (0.00, 0.02, 0.02, 0.03, 0.02) [2] (0.01, 0.02, 0.02, 0.03, 0.02) ... [n] (0.01, 0.00, 0.01, 0.05, 0.03) Я хотел бы эффективно вычислить среднее значение и стандартное отклонение по каждому индексу списка по всем...

86
Использование 'use utf8;' дает мне "Широкий характер в печати"

Если я запустил следующую программу Perl: perl -e 'use utf8; print "鸡\n";' Я получаю это предупреждение: Wide character in print at -e line 1. Если я запустил эту программу Perl: perl -e 'print "鸡\n";' Я не получаю предупреждения. Я думал, что use utf8необходимо использовать символы UTF-8 в...

86
Сборка Perl, модульное тестирование, покрытие кода: полный рабочий пример

Большинство ответов Stackoverflow, которые я нашел в отношении процесса сборки Perl, модульного тестирования и покрытия кода, просто указывают мне на CPAN за документацией. Нет ничего плохого в том, чтобы указывать на модули CPAN, потому что там должна находиться вся документация. Однако во многих...

86
Как я могу преобразовать строку в число в Perl?

У меня есть строка, содержащая десятичное значение, и мне нужно преобразовать эту строку в переменную с плавающей запятой. Итак, у меня есть пример строки «5.45», и мне нужен эквивалент с плавающей запятой, чтобы я мог добавить к нему .1. Я искал в Интернете, но вижу только, как преобразовать...

85
Как пронумеровываются вложенные группы захвата в регулярных выражениях?

Существует ли определенное поведение для того, как регулярные выражения должны обрабатывать захват вложенных круглых скобок? Более конкретно, можете ли вы разумно ожидать, что разные движки будут фиксировать внешние скобки в первой позиции и вложенные скобки в последующих позициях? Рассмотрим...

85
Почему я не получаю синтаксических ошибок при выполнении сценария Python с Perl?

Я просто написал тестовый код на Python test.pyи запускаю его следующим образом: perl test.py Через некоторое время я осознал свою ошибку. Я говорю «через некоторое время», потому что код Python действительно выполняется правильно, как в интерпретаторе Python! Почему мой Perl интерпретирует мой...

84
Как узнать, есть ли у переменной числовое значение в Perl?

Есть ли в Perl простой способ определить, является ли данная переменная числовой? Что-то вроде: if (is_number($x)) { ... } было бы идеально. -wКонечно, предпочтительнее метод, который не будет выдавать предупреждений при использовании переключателя....

83
Как в Perl кратко проверить, определена ли переменная $ и содержит ли она строку ненулевой длины?

В настоящее время я использую следующий Perl, чтобы проверить, определена ли переменная и содержит ли она текст. Я должен definedсначала проверить, чтобы избежать предупреждения о неинициализированном значении: if (defined $name && length $name > 0) { # do something with $name } Есть ли...

83
Признающая сила «современных» регулярных выражений

Какой класс языков действительно распознают настоящие современные регулярные выражения? Всякий раз, когда есть группа захвата неограниченной длины с обратной ссылкой (например (.*)_\1), регулярное выражение теперь соответствует нерегулярному языку. Но S ::= '(' S ')' | εодного этого недостаточно,...

82
Переменные nginx похожи на SetEnv в Apache?

Я использую SetEnv в Apache для установки некоторых переменных в виртуальных хостах, которые я восстанавливаю с помощью PHP $_SERVER[the_variable]. Сейчас я перехожу на Perl Catalyst и Nginx, но мне кажется, что директива env в Nginx отличается. Это не работает. Как этого добиться? Вот фоновое...

82
Что означает синтаксис << 'm' = ~ m >> в perl?

Итак, я понимаю, что у perl много необычного синтаксиса, но на днях я наткнулся на фрагмент кода на работе, который меня смутил. Может кто-нибудь объяснить мне, что это значит: <<'m'=~m>> print $a unless $b; return; m ; Это похоже на синтаксис HEREDOC, но не в той форме, которую я...

20
Перезаписать функцию, определенную в модуле, но перед тем, как использовать ее на этапе выполнения?

Давайте возьмем что-то очень простое, # Foo.pm package Foo { my $baz = bar(); sub bar { 42 }; ## Overwrite this print $baz; ## Before this is executed } Могу ли я в любом случае test.plзапустить код, который изменяет то, что $bazустановлено, и заставляет Foo.pmпечатать что-то еще на экране? # maybe...

12
Почему некоторые пользователи цитируют имена классов в Perl?

Глядя на это Type::Tiny, я вижу, что имя класса в вызове Type::Tiny->newуказано в официальных документах, my $NUM = "Type::Tiny"->new( name => "Number", constraint => sub { looks_like_number($_) }, message => sub { "$_ ain't a number" }, ); Почему это? Это простой стиль? Есть ли...

11
Как лучше (идиоматически) завершить работу сценария Perl (запускается с -n / -p), если входной файл не найден?

$ perl -pe 1 foo && echo ok Can't open foo: No such file or directory. ok Мне бы очень хотелось, чтобы скрипт perl не работал, когда файл не существует. Что такое «правильный» способ заставить -p или -n завершиться ошибкой, когда входной файл не...

9
У Perl's Glob есть ограничение?

Я использую следующие ожидаемые строки возврата из 5 символов: while (glob '{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}'x5) { print "$_\n"; } но он возвращает только 4 символа: anbc anbd anbe anbf anbg ... Однако когда я уменьшу количество символов в списке: while (glob...

9
Как эмулировать wc -l в Raku

В Perl 5 вы можете эмулировать, wc -lиспользуя oneliner: perl -lnE 'END {say $.}' test.txt Как реализовать эту функциональность на Raku Если вы попытаетесь реализовать это: raku -e 'say "test.txt".IO.open.lines.elems' он оказывается медленным и использует много памяти Информация для...