Comments 18
Испытываю слабость к perl. Необъяснимую. Есть в нём что-то... Правда, давно не доводилось им пользоваться и упоминаний о нем все меньше. Начал было думать, что он умер. Но две Ваши последние статьи вселили надежду. :-) Спасибо!
Perl не умер, его постоянно совершенствуют, выпускаются новые версии. Поддерживается инфраструктура. Проводятся конференции. Выпускаются журналы. В России есть вакансии perl-разработчиков, на нём написаны сайты крупных компаний и, как я упоминал в комментариях к одной из своих статей - появляются и стартапы.
Изучение же perl - осознанный выбор программиста, в то время, как изучение python или php - часто по рекомендации друга, что вот, мол - "там больше платят" или "его легче освоить".
Это все сильно походит на баго-фичу. Т.е. на самом деле это бага, вызванная кривостью имплементации, но она была задокумнетирована и теперь является ценной фичей, вошедшей в оборот. И по этой самой причине исправлять её никто не собирается.
Да, было бы неплохо, чтобы perl обращал внимание на переменную внутри регулярки /$re/
. Тем не менее теперь, когда я узнал о такой особенности, я её буду всегда учитывать и багов с ней недопущу.
А как подобное работает с многопоточностью? Последняя использованная регулярка одна на приложение или поток?
Если первое, то это кошмар, надеяться, что в другом потоке не будет вызвана регулярка.
Какое-то программирование из ночных кошмаров, когда всё насквозь мутабельное, всё на строках, и даже вызов чистой с виду функции мутирует какое-то невидимое состояние. Жуть!
Это такая детская жуть.
Если хотите ощутить настоящие эмоции, советую попробовать писать 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
Последний раз писал на Перле лет 10 назад и часто через месяц не мог прочитать что сам написал :) Особенно если налягать на контекстную переменную.
С тех пор его не трогал и волосы стали мягкими и шелковистыми :)
Perl - лютая жуть... Выпилили его отовсюду!
Судя по картинке, используется GUI на Tk или Tkx? :)
Об использовании пустого регулярного выражения в Perl ( m// )