Это, вероятно, было задано раньше, но я не уверен, что искать. Проблема в том, что я имею дело с пакетом, который имеет 4 каталога глубиной и имеет довольно длинное имя. Внутри пакета есть некоторые экспортированные константы, которые я хочу использовать в основном, но я не хочу использовать их полностью квалифицированные имена и не хочу использовать их локальное имя (часть после последнего: :). Например.Работа с глубокими именами пакетов в perl и их экспортированными константами и подпрограммами
use strict;
use warnings;
use Vendor::FirstPackage::SecondPackage::ThirdPackage qw(const_a);
# this is works, but I want to include the last package
my $x = const_a;
# this throws bareword error
my $y = ThirdPackage::const_a;
# this throws undefined subroutine
my $z = ThirdPackage::const_a();
Есть ли способ получить доступ к константе через последнее имя пакета?
Помимо стиля, существует ли функциональная причина использования FQN вместо псевдонима? – gogators
@gogators: псевдоним по существу создает глобальную переменную% ThirdPackage ::. это плохо для всех обычных причин, по которым глобальные переменные являются плохими. например что происходит, когда есть также Vendor2 :: Foo :: Bar :: ThirdPackage, что вы также хотите использовать псевдоним? – ysth
Я на самом деле думаю, что ответ Барта намного лучше. – ysth