Есть пакет (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);
>[оверквотинг удален]
> В основной программе имя пакета получаем в переменной:
> my $p='pack1';
> require "$p.pl"; #пакет загружаем
> а теперь нужно вывести переменную $test находящуюся в пакете, стандартно было бы
> так:
> print $pack1::test;
> но тут имя пакета нужно указывать через переменную $p и не соображу
> как сделать, например это, не работает:
> print $${p}::test;
> print $($p::test);eval "print \$${p}::test";
> eval "print \$${p}::test";логично и мои мозги до это не дошли, но все же несколько костылеподобно, я думал есть более прямое решение...