[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