|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Konstantin Tokar 2:5020/400 21 Sep 2004 20:43:19 To : Artem Chuprina Subject : Re: Как узнать имя переменной, на которую есть ссылка? --------------------------------------------------------------------------------
Artem Chuprina wrote:
> Konstantin Tokar -> Andrey Sapozhnikov @ Tue, 21 Sep 2004 15:31:03 +0000
> (UTC): Как узнать имя переменной, на которую есть ссылка? Hапример, я пишу sub
> print_dump{ ...... } my $a = 'текст'; print_dump($a); и хочу, чтобы
> print_dump($a) выдавала дамп в виде $a = 'текст' Корректно -
> никак. Теоретически я представляю, как это можно сделать, но, возможно, это
> уже сделано? Очень любопытно... ну и как же? Пусть "теоретически"? Hу, мы ведь
> знаем, из какой строки произошёл вызов print_dump(), и можем посмотреть, какие
> переменные были переданы. Это сработает даже для анонимных. Можно и ещё
> что-нибудь придумать, наверняка можно сравнить адреса в @_ с адресами всех
> доступных из вызывающей процедуры. Hет, если ввести некоторые ограничения на
> употребление этой штуки, то можно пробовать... Ограничения включают:
> доступность файла (т.е. с -e не работает), вызов функции по имени, а не через
> ссылку, отсутствие в этой строке второго ее вызова. То бишь
> банального print_dump($a); print_dump($b) оно не переживет.
Эти проблемы меня и останавливают - написание действующей модели займёт
больше времени, чем решить проблему другими средствами. Вот сейчас
попробую написать с помощью фильтров. Что-нибудь типа
#debug $a $b $c
--- ifmail v.2.15dev5.3
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.perl/65776d834605.html, оценка из 5, голосов 10
|