PDA

Просмотр полной версии : Привожу в порядок своИ PERL'ы. :)


DarkTemplar
02.03.2007, 13:33
Раньше всё писал на скорую руку, не так обтстоятельно, без perl -w и пр.
Тут на досуге решил перевести в порядок все свои "шедевры". добавил -w и тихо офигел. :) Но постепенно начинаю осознавать полезность варнингов.

Теперь вопрос относительно use strict. Я что-то не до конца догоняю необходимость этой опции. В отличии от WARNов она ИМХО матерится на любой мелкий недочёт :spy:

Продвинутые PERL'овики есть? ;)

squirL
02.03.2007, 14:29
не на недочет, а на неаккуратный код.
1. важное - не дает использовать в данной области видимости необявленные переменные.
2. убирает вольности с использование идентификаторов:

my $var = function #не канает
my $var = function() #работает.

это повышает читабельность кода и снимает вероятность случайных ошибок.
3. регламентирует применение символических ссылок (не использую, поэтому за подробностями в ман)

shurutov
02.03.2007, 15:56
squirL :agree:
Оглядываясь назад - много времени она мне сэкономила матерясь "на любой мелкий недочёт" ;):)

DarkTemplar
02.03.2007, 16:06
Тогда встречный вопрос.

Как побороть ситуёвину

my $str = "error:invalid-request//";
my $prefix = "";
my $domain = "";

while ($str =~ s/\/\//\//g){};
($prefix, $domain) = split(/\//, $str);
$str = $prefix."\/\/".$domain;

В данном случае строка разбивается на две части: до "//" и после "//".
А так как после "//" ничего нет, то $domain принимает undef.
В результате имеем: Use of uninitialized value in concatenation (.) or string

Что посоветуете?

squirL
02.03.2007, 16:17
проверять $domain на undef

shurutov
02.03.2007, 17:27
Функция defined

wilkomsoon
02.03.2007, 21:00
О, рекомендую еще http://www.perlcritic.com/. Много нового о себе можно узнать.

Jen
03.03.2007, 14:32
Еще, до кучи. Долго буду помнить бег по граблям с $count. В отдельной процедуре ее использовал, а то, что она головную перебивала - забыл, не подумал. Очень сексуальный денек у меня тогда выдался, пока понял, в чем косяк.

DarkTemplar
05.03.2007, 11:13
О, рекомендую еще http://www.perlcritic.com/. Много нового о себе можно узнать.
О! А вот за эту ссылку ОРГРОМНОЕ РЕСПЕКТИЩЕ! :good:
Один из тех редких случаев обоснованной критики. Получил сразу все ответы на своИ вопросы. :)
СПАСИБО!