perl - 在 Perl 中为模块提供备用名称

标签 perl module naming

在 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/

相关文章:

perl - 将散列结构分配给标量变量

javascript - 函数命名的不同方式?

naming - 十六进制字母表中的单词

delphi - 如何解决命名和范围冲突?

arrays - 如何获取数组的最后一个元素并显示其余元素?

linux - 解码 Perl 脚本

java - 在运行 Strawberry Perl 的 Windows 上安装 Inline::Java 的问题

module - Go 和命名空间 : is it possible to achieve something similar to Python?

javascript - 如何为 commonjs 和全局变量生成 TypeScript 定义?

python - 如何处理分布在目录中的模块?