Size: a a a

2020 November 26

ПК

Павел Колганов ☭... in use Perl or die;
Denis F
он нужен в сильно ограниченном количестве случаев
Согласен.
источник

W

Warstone in use Perl or die;
Ну на пример у нас очень любят писать state $app = Method_to_get_ref_to_app и всех устраивало, пока не пришли тесты в которых стало нужно поднять 2 аппа и проверить их взаимодействие.

Еще пример: У нас любят писать state $my_cfg = $app->cfg->{something}. Но при этом есть SIGHUP, который якобы должен заставить код перечитать конфиг ну и тесты, да...
источник

ПК

Павел Колганов ☭... in use Perl or die;
Warstone
Ну на пример у нас очень любят писать state $app = Method_to_get_ref_to_app и всех устраивало, пока не пришли тесты в которых стало нужно поднять 2 аппа и проверить их взаимодействие.

Еще пример: У нас любят писать state $my_cfg = $app->cfg->{something}. Но при этом есть SIGHUP, который якобы должен заставить код перечитать конфиг ну и тесты, да...
А, понял. Разная практика. Я только для простых случаев, типа счетчиков использовал.
Как и local лишь для временного переопределения системных переменных внутри блока.
источник

W

Warstone in use Perl or die;
Павел Колганов ☭
А, понял. Разная практика. Я только для простых случаев, типа счетчиков использовал.
Как и local лишь для временного переопределения системных переменных внутри блока.
Да вообще state и тесты не дружат.
источник

ПК

Павел Колганов ☭... in use Perl or die;
Warstone
Да вообще state и тесты не дружат.
С тестами беда. На работе код унылый и древний, в основном. Свои проекты очень слабо успеваю тестами обкладывать, время жрет. Что, конечно, плохая практика.
источник

W

Warstone in use Perl or die;
Ну у меня похожая проблема была... С определенного момента мы просто стали писать тесты на новый код. Кажется, что это единственный путь в таких ситуациях.
источник

АК

Алексей Клименко... in use Perl or die;
Warstone
Ну как тебе сказать... по опыту - state - зло.
Я же конкретный пример привёл.
источник

W

Warstone in use Perl or die;
Алексей Клименко
Я же конкретный пример привёл.
Где есть state. И это плохо.
источник

АК

Алексей Клименко... in use Perl or die;
Warstone
Где есть state. И это плохо.
источник

АК

Алексей Клименко... in use Perl or die;
Warstone
Где есть state. И это плохо.
источник

W

Warstone in use Perl or die;
А в твоем случае:
sub qwe {
 state $data = {
   qwe => 'rty'
 };
 return $data;
}

qwe()->{qwe} = 'aio';
#Вешайся.
источник

АК

Алексей Клименко... in use Perl or die;
Warstone
А в твоем случае:
sub qwe {
 state $data = {
   qwe => 'rty'
 };
 return $data;
}

qwe()->{qwe} = 'aio';
#Вешайся.
Ну давайте ещё коллбеки по два раза вызывать теперь.
источник

W

Warstone in use Perl or die;
Боже....
источник

АК

Алексей Клименко... in use Perl or die;
Warstone
Боже....
Работает быстро!!
источник

W

Warstone in use Perl or die;
return $table->{$_[1]} // 'TLObject::Telegram';
источник

АК

Алексей Клименко... in use Perl or die;
Warstone
return $table->{$_[1]} // 'TLObject::Telegram';
Я на эту хрень больше не поведусь ))
источник

W

Warstone in use Perl or die;
?
источник

АК

Алексей Клименко... in use Perl or die;
К перловским хешам я больше не прикасаюсь, пока не проверю наличие ключа там.
источник

W

Warstone in use Perl or die;
А... Ты не смог в Вивификацию? Понимаю.
источник

W

Warstone in use Perl or die;
В твоем случае рекомендую хеш вытащить в константы.
источник