Изучение Perl с точки зрения Python - PullRequest
12 голосов
/ 28 марта 2011

Я довольно хорошо знаком с python, с точки зрения системной автоматизации и создания инструментов;Я сисадм по профессии.Недавно я начал новую работу в компании, которая хочет стандартизировать Perl, для которой я не знаю ни одной.Поэтому мне нужно довольно быстро освоить Perl, и я надеялся, что кто-нибудь может указать на полезную справочную информацию, предназначенную для разработчиков / сценариев Python, пытающихся изучить основы Perl.Я нашел это о переходе от Perl к Python;Мне нужно наоборот.Я купил книгу ламы , но пока не смог ее прочитать.Любой вклад / предложения?

Ответы [ 5 ]

17 голосов
/ 28 марта 2011

Прокрутите ламу (это будет легко), и когда вы закончите с этим, проверьте Эффективное программирование на Perl и / или Современный Perl .Они помогут вам избежать ошибок, поощряемых всеми дерьмовыми уроками, написанными в 1994 году, которые, похоже, отражаются в сети.

Найдите время, чтобы проверить Moose и, в частности, MooseX :: Getopt

Кстати, мне нравится Perl больше, чем Python, но я не чувствую необходимости запускать Python вниз каждый раз, когда упоминается .WTF Pythonistas?Пожалуйста, подумайте на минуту, что ни один язык не является идеальным, и ни один язык не обладает «абсолютной правдой программирования».Как указал Брукс, серебряной пули нет.В Python есть отличные вещи, в Perl есть отличные.В Python есть некоторые вещи, которые являются дерьмом, в Perl есть некоторые вещи, которые являются дерьмом.

8 голосов
/ 29 марта 2011

Некоторые переводы типичных идиом Python в Perl:

  • Понимание списка [x * x for x in range(10)] становится map {$_ * $_} 0..9
  • Фильтр filter(x > 5, range(10)) становится grep {$_ > 5} 0..9
  • Функция def f(x, y): return x + y становится sub f { my ($x, $y) = @_; $x + $y }

В качестве краткого справочника по встроенным функциям я нахожу perldoc -f <function_name> очень полезным.

Наконец, учтите, что хотя одинарные ('') и двойные кавычки ("") строки идентичны в python, они не в perl! Например, "$a\n" будет интерполировано, то есть, $ a будет заменено значением переменной $ a.

8 голосов
/ 28 марта 2011

Я знаю, что у вас уже есть книга, но из вашего описания я бы порекомендовал Автоматизация системного администрирования с помощью Perl

6 голосов
/ 28 марта 2011

Я также перешел с Python на Perl для работы. Я также использовал Learning Perl, и это помогло мне довольно хорошо выучить Perl в выходные дни.

Лучший способ выучить Perl - прочитать этот учебник и использовать его. Вы можете переписать ваши существующие проекты Python на Perl, чтобы ускорить изучение языка, если вы ищете упражнения.

2 голосов
/ 28 марта 2011

Лучше всего делать это, просто изучая книгу Ламы и делая упражнения. И, исходя из Python, который имеет несколько похожий синтаксис, убедитесь, что вы пишете на Perl вместо Python.

...