在 Perl 中是否可以为模块分配一个新名称以在我们的代码中使用?
我的目的是:我的一些客户需要 .xls 文件 (Spreadsheet::Excel),其他客户需要 .xlsx (Excel::Writer::XLSX)。由于这两个模块共享大部分 API,因此我希望能够在项目开始时的某个地方设置该选项一次,然后就忘记它,这也使得将来可以轻松更改它。它也许还可以用于诸如鼠标/驼鹿更改之类的事情。
最佳答案
看来您真正想要的只是能够在名称在运行时确定的类上调用类方法(例如 new
)。这实际上很简单:
my $spreadsheet_class = 'Spreadsheet::Excel';
my $sheet = $spreadsheet_class->new;
当您调用包含字符串的标量变量上的方法时,Perl 会将其视为该名称的包上的类方法。不需要花哨的符号表黑客,并且它在 use strict
下工作得很好。
关于perl - 在 Perl 中为模块提供备用名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18548179/