The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"perl && package"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Perl)
Изначальное сообщение [ Отслеживать ]

"perl && package"  +/
Сообщение от Аноним (??) on 01-Дек-11, 12:02 
Есть пакет (pack1.pl):
package pack1;
$test='234234';
return 1;

В основной программе имя пакета получаем в переменной:
my $p='pack1';
require "$p.pl"; #пакет загружаем

а теперь нужно вывести переменную $test находящуюся в пакете, стандартно было бы так:
print $pack1::test;

но тут имя пакета нужно указывать через переменную $p и не соображу как сделать, например это, не работает:
print $${p}::test;
print $($p::test);

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "perl && package"  +/
Сообщение от meantraitor on 01-Дек-11, 14:28 
>[оверквотинг удален]
> В основной программе имя пакета получаем в переменной:
> my $p='pack1';
> require "$p.pl"; #пакет загружаем
> а теперь нужно вывести переменную $test находящуюся в пакете, стандартно было бы
> так:
> print $pack1::test;
> но тут имя пакета нужно указывать через переменную $p и не соображу
> как сделать, например это, не работает:
> print $${p}::test;
> print $($p::test);

eval "print \$${p}::test";

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "perl && package"  +/
Сообщение от Аноним (??) on 02-Дек-11, 06:26 
>  eval "print \$${p}::test";

логично и мои мозги до это не дошли, но все же несколько костылеподобно, я думал есть более прямое решение...

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру