|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Dmitry Grebeniuk 2:469/105 12 Aug 2003 22:59:30 To : Bulat Ziganshin Subject : local deprecated in perl6 --------------------------------------------------------------------------------
DG>> Есть ли какие-нибудь другие способы сделать переменную видимой в
DG>> функции и всех функциях, вызываемых из нее?
BZ> это bad programming style, так что вполне возможно вынесение local в
BZ> устаревшие возможности
Вот, к примеру, реальная задача, для которой мне бы пригодился local.
Выполняемые программой действия записаны в конфиге в виде "action1", "action2
or action3", "action5(func6(123)+234) and action6(345)". И некоторое состояние
программы, которое смотрят и иногда меняют данные действия, вызываемые через
eval("action"). Было бы красиво сделать local $state = {} в блоке, в котором
выполняются eval'ы в разном порядке. Сейчас сделал так: "my $state" глобально,
до eval'ов делаю "$state = {real_state}", а после eval'ов делаю "$state =
undef". По-уродски немного, но не передавать же $state в каждую функцию...
Кстати, с этим же "дизайном" связан вопрос. Как бы скомпилировать мелкие
куски перлячьего кода в какой-нибудь байткод или что-то подобное, чтобы
eval("perlcode"), вызываемый сотни раз, выполнялся максимально быстро?
bye
--- GoldED+/W32 1.1.4.7
* Origin: gds/FH (2:469/105)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/18413f394bff.html, оценка из 5, голосов 10
|