perl - 如何添加基于 perl 版本的函数?

标签 perl versioning

如果有人问过这个,我很抱歉,但我发现很难搜索。

我在本地使用 Perl 5.12,但我们的一些机器使用 Perl 5.8.8,它们暂时不会更新。

对于审计,我在平台 5.12 上使用“say”。

我写了一个简单的函数来在 5.8.8 上实现 say,但我不想在 5.12 上使用它。

有没有办法只在旧版本的 Perl 上使用我的 say 函数并在 5.12 上使用 say 的“内置”版本?

最佳答案

您可以使用 $^V special variable确定 Perl 解释器的版本:

BEGIN {
    if ($^V ge v5.10.1) {  # "say" first appeared in 5.10
        require feature;
        feature->import('say');
    }
    else {
        *say = sub { print @_, "\n" }
    }    
}

关于perl - 如何添加基于 perl 版本的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5394435/

相关文章:

Perl 食谱 — 在字符串中插入函数

mysql - 版本化和索引的数据存储

silverlight - 如何创建Silverlight 3应用程序无法使用的Silverlight 4 dll?

iphone - 检测 iPhone 应用程序版本更新?

perl - 如何告诉 perl 打印到文件句柄而不是打印文件句柄?

regex - 如何在 Perl 的正则表达式中使用 chr 函数?

perl - 如何使用 bash 或 Perl 重新格式化 mbox 文件中的消息?

perl - 尝试在 Win32 上通过 PPM/Activestate 5.12 安装 Moose-2.000 - 找不到 404

class - 如何设计一个版本转换器(Json.net),在没有太多代码污点的情况下将非常旧的版本处理为新版本

docker - 正确对 Docker 镜像进行版本控制