Pull to refresh

Comments 18

Испытываю слабость к perl. Необъяснимую. Есть в нём что-то... Правда, давно не доводилось им пользоваться и упоминаний о нем все меньше. Начал было думать, что он умер. Но две Ваши последние статьи вселили надежду. :-) Спасибо!

Perl не умер, его постоянно совершенствуют, выпускаются новые версии. Поддерживается инфраструктура. Проводятся конференции. Выпускаются журналы. В России есть вакансии perl-разработчиков, на нём написаны сайты крупных компаний и, как я упоминал в комментариях к одной из своих статей - появляются и стартапы.

Изучение же perl - осознанный выбор программиста, в то время, как изучение python или php - часто по рекомендации друга, что вот, мол - "там больше платят" или "его легче освоить".

Было время, когда он у нас был единственным вариантом "биллинга" интернет-трафика. Сами писали анализ логов squid и принятие решения по результатам. Эх! Классное время было! :-) Но, к сожалению, в данный момент как-то не находится ниши для перла. А жаль! С удовольствием бы его использовал.

Это все сильно походит на баго-фичу. Т.е. на самом деле это бага, вызванная кривостью имплементации, но она была задокумнетирована и теперь является ценной фичей, вошедшей в оборот. И по этой самой причине исправлять её никто не собирается.

Да, было бы неплохо, чтобы perl обращал внимание на переменную внутри регулярки /$re/. Тем не менее теперь, когда я узнал о такой особенности, я её буду всегда учитывать и багов с ней недопущу.

А как подобное работает с многопоточностью? Последняя использованная регулярка одна на приложение или поток?

Если первое, то это кошмар, надеяться, что в другом потоке не будет вызвана регулярка.

Долго ли проверить? )

perl -e 'use threads ("yield",
             "stack_size" => 64*4096,
             "exit" => "threads_only",
             "stringify"); 
  @x = map { 
    my $x=$_; 
    threads->create(sub { 
       /$x/; sleep 3-$x; print "$x) ", $x=~//? 1:0, "\n"; 
    }) 
  } 1..2; 
  $_->join for @x'
2) 1
1) 1

Последняя использованная регулярка одна на поток.

Какое-то программирование из ночных кошмаров, когда всё насквозь мутабельное, всё на строках, и даже вызов чистой с виду функции мутирует какое-то невидимое состояние. Жуть!

Это такая детская жуть.

Если хотите ощутить настоящие эмоции, советую попробовать писать CMD-шники для Windows. Вот это по-настоящему демоническая штука. Но при этом хитрая: сначала кажется, что там всё просто. А вот чем больше узнаёте, тем больше поглощает вас эта бездна...

Например, я на днях хотел написать скриптик и внезапно понял, что больше не знаю, как в CMD правильно сравнивать строки.

Так в документации написано, что или без пробелов между операндами и равно, или брать операнды в кавычки, как в баше:

String syntax
   IF [/I] [NOT] item1==item2 command
   IF [/I] [NOT] "item1" == "item2" command

   IF [/I] item1 compare-op item2 command

   IF [/I] item1 compare-op item2 (command) ELSE (command)
   
      compare-op  can be one of
                EQU : Equal
                NEQ : Not equal

                LSS : Less than <
                LEQ : Less than or Equal <=

                GTR : Greater than >
                GEQ : Greater than or equal >=
                
IF will only parse numbers when one of (EQU, NEQ, LSS, LEQ, GTR, GEQ) is used.
The == comparison operator always results in a string comparison.

Ссылка: https://ss64.com/nt/if.html

Это не всегда работает, если в сравнении участвуют переменные или параметры.

Самый простой пример. Делаю CMD с содержимым

if "%*" == "123" echo EQUAL

Вызываю с одной двойной кавычкой в качестве параметра. Получаю "Ошибка в синтаксисе команды."

Последний раз писал на Перле лет 10 назад и часто через месяц не мог прочитать что сам написал :) Особенно если налягать на контекстную переменную.

С тех пор его не трогал и волосы стали мягкими и шелковистыми :)

UFO just landed and posted this here

Хорошая разминка для ума, правда? )

Perl - лютая жуть... Выпилили его отовсюду!

Ещё нет, я пока на нём работаю )

Судя по картинке, используется GUI на Tk или Tkx? :)

На Tk. Tkx добавлет стили, а так же несколько различаются опции виджетов; нет виджета listbox, зато есть Treeview. C другой стороны мне не понравился префикс перед конструкторами виджетов. Так что на картинке listbox. )

Sign up to leave a comment.

Articles