The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
perl && package, !*! Аноним, 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);

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

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

    • perl && package, !*! Аноним, 06:26 , 02-Дек-11 (2)
      >  eval "print \$${p}::test";

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




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

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