[Moscow.pm] Копирование магии 1 раз
Warstone@list.ru
warstone на list.ru
Вт Июн 21 01:28:30 PDT 2016
Вообще говоря, так можно, да... Правда после этого пропадает вообще вся лаконичность записи и тогда уж лучше перехватывать те 3 опа, о которых было сказано выше.
То есть такая запись выглядит еще хуже, чем определение хеша и навешивание магии "потом", ИМХО.
>Вторник, 21 июня 2016, 10:22 +03:00 от Гришаев Анатолий <agrishaev на gmail.com>:
>
>1) Что типа:
> a) $var = deep_hash_magic( q => $w, ... )
> b) $var = deep_array_magic( $w0, $w1, ... )
> c) Если нужны многоуровневые хэши, то включаем рекурсию
> dhm( q=> dhm(r1=> $w1, q2=> $w2) )
> d) можно делать перехват синтаксического вызова процедуры и проанализировать аргументы во время компиляции этого вызова, заменить их на свои и
> наблюдать счастье, если конечно есть "железные" яйца.
>
>
>20 июня 2016 г., 17:52 пользователь Warstone на list.ru < warstone на list.ru > написал:
>>1) А запись для Хеша можно показать?...
>>$var = {
>> q => 'w'
>>};
>>magic($var->{q});
>>
>>2) Это не то ))
>>
>>3) Сахар. Синтаксический сахар. Исключительно чтобы можно писать
>>$var = magic(...);
>>
>>
>>>Понедельник, 20 июня 2016, 17:35 +03:00 от Гришаев Анатолий < agrishaev на gmail.com >:
>>>
>>>
>>>Дико не понятно, что собственно хочется:
>>>
>>>Я иногда делаю так:
>>>1) magic( $var = 1)
>>>2) tie $var, tied($some_other_var)->clone()
>>>3) А зачем нам вообще магию копировать?
>>>
>>>20 июня 2016 г., 15:52 пользователь Vansevich Evgeniy < evgeniy на just4i.ru > написал:
>>>>Коль, а ты можешь рассказать про оригинальную постановку задачи? просто задача звучит так, что перехват опов будет проще чем любой другой путь)
>>>>
>>>>
>>>>
>>>>Отправлено с Mi Phone
>>>>" Warstone на list.ru " < warstone на list.ru > | От: 20 июня 2016 г. 15:04 | Сообщение:
>>>>>Может кто уже реализовывал...
>>>>>
>>>>>Итак... Есть магия. PERL_MAGIC_ext У нее перебит svt_get. В текущей реализации задается магия через
>>>>>$var = 1;
>>>>>magic($var);
>>>>>
>>>>>Это неудобно. Хочется так: $var = magic(); Но так не работает, так как svt_get должна сделать sv_setsv на магическую переменную. И потом в sassign ее скопируют без магии. Вернее не так... Если туда передать другую магическую переменную, то на ней опять-таки позовется svt_get и будет бесконечный цикл.
>>>>>
>>>>>Можно, конечно, перехватить sassign, anonhash, anonarray но кто знает - какие еще опы надо перехватывать и это уже совсем из области черной магии.
>>>>>
>>>>>Может быть кто-то сталкивался с похожей задачей копирования магии?..
>>>>>
>>>>>
>>>>>--
>>>>>Nick unnoun
>>>>--
>>>>Moscow.pm mailing list
>>>>moscow-pm на pm.org | http://moscow.pm.org
>>>>
>>>
>>>--
>>>Moscow.pm mailing list
>>>moscow-pm на pm.org | http://moscow.pm.org
>>
>>
>>--
>>Moscow.pm mailing list
>>moscow-pm на pm.org | http://moscow.pm.org
>>
>
>--
>Moscow.pm mailing list
>moscow-pm на pm.org | http://moscow.pm.org
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20160621/8b9864cf/attachment-0001.html>
Подробная информация о списке рассылки Moscow-pm