处理perl中的深层包名及其导出的常量和子例程

gog*_*ors 1 perl

之前可能已经提出过这个问题,但我不确定要搜索什么.问题是我正在处理一个深度为4个目录并且名称相当长的软件包.在包中是一些我想在main中使用的导出常量,但是我不想使用它们的完全限定名,也不想使用它们的本地名称(最后一个部分之后的部分:).例如.

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();
Run Code Online (Sandbox Code Playgroud)

有没有办法通过它的最后一个包名来访问常量?

yst*_*sth 7

use Package::Alias 'ThirdPackage' => 'Vendor::FirstPackage::SecondPackage::ThirdPackage';
Run Code Online (Sandbox Code Playgroud)

但我建议只使用完全限定名称.