Как всегда, http://www.csszengarden.com/ . Обратите внимание, что изображения не являются общественным достоянием.
Исходные фильтры плохие проблемные, потому что они используют несовершенный синтаксический анализатор для перезаписи вашего кода. Все работает отлично, пока фильтр управляет кодом, который вы ему скармливаете.
В тот момент, когда вы добавляете что-то, что нарушает фильтр, вся система самоуничтожается, и вы получаете странные ошибки.
Исходные фильтры также сбивают с толку отладчик, что может быть проблемой, если вы используете отладчик.
Я предпочитаю не указывать:
use Smart::Comments;
в моем коде. Когда я действительно использую Smart :: Comments
, я вызываю сценарий, используя:
$ perl -MSmart::Comments test.pl
Таким образом, нет никаких шансов, что Smart :: Comments
будет использоваться в производственном коде.
У меня нет мнения о части фильтров-источников. Но просто посмотрите Краткое содержание Smart :: Comments
. Они могут быть умными, но то, что вы получаете, вряд ли можно назвать «комментариями». Если вам нужен индикатор выполнения, добавьте его явно. Если вам нужно что-то прокомментировать, сделайте это так, чтобы следующий парень, читающий ваш источник, понял, что вы имели в виду.
Smart :: Comments специально написано таким образом, что когда вы закомментируете "использовать Smart :: Comments", это будут только комментарии, поэтому программа не затрагивается вообще. У других модулей есть более серьезные проблемы, например, когда вы не можете получить точный номер строки ошибки.
Я большой поклонник Smart :: Комментарии, и это называется во всем нашем коде, в разработке и в производственных копиях. Я редко использую его для индикаторов выполнения, в основном для утверждений и вывода отладки.
Однако практика заключается в том, чтобы вытащить его, используя форму:
use Smart::Comments -ENV;
Если переменная среды Smart_Comments не установлена, Smart :: Comments полностью инертный.
Лучшее из обоих миров.