如何在 OS X 10.5.8 上安装 perl5.10?

如何在 OS X 10.5.8 上安装 perl5.10?

我需要在我的 OS X 10.5.8 机器上安装 perl 5.10。

我已经安装了 macports。而且我似乎还安装了 port perl5.10:

$ sudo port 安装 perl5.10
密码:
---> 计算 perl5.10 的依赖关系
---> 清理 perl5.10

但是当前的 perl 版本仍然是 5.8.8

$ perl
/opt/本地/bin/perl

$ perl --version

这是为 darwin-2level 构建的 perl,v5.8.8

版权所有 1987-2006,Larry Wall

Perl 只能在艺术许可证或
GNU 通用公共许可证,可以在 Perl 5 源代码工具包中找到。

Perl 的完整文档(包括常见问题列表)可以在以下位置找到:
使用“man perl”或“perldoc perl”访问此系统。如果您有权访问
互联网,请将您的浏览器指向 http://www.perl.org/,即 Perl 主页。

$ /opt/local/bin/perl --version

这是为 darwin-2level 构建的 perl,v5.8.8

版权所有 1987-2006,Larry Wall

Perl 只能在艺术许可证或
GNU 通用公共许可证,可以在 Perl 5 源代码工具包中找到。

Perl 的完整文档(包括常见问题列表)可以在以下位置找到:
使用“man perl”或“perldoc perl”访问此系统。如果您有权访问
互联网,请将您的浏览器指向 http://www.perl.org/,即 Perl 主页。

我错过了什么?

答案1

每个版本安装在哪里?

  • /usr/bin/perl 是 5.8.8

因此,首先要检查的是您的 PATH 变量。

然后查看其他地方 - /usr/local/bin 等等 - 查看新版本的安装位置。

对于我自己,我构建了自己的 Perl,将系统留给系统;它位于$HOME/perl/v5.10.1/bin/perl,接近版本 5.10.0。

我使用这个脚本(称为“which”)来确定我正在使用的程序的版本。与“which -a perl”一起使用,它会告诉我我可能使用的所有可能的 Perl 副本...

#!/bin/sh
#
# @(#)$Id: pathfile.sh,v 2.1 2008/07/14 17:42:13 jleffler Exp $
#
# Which command is executed

# Loosely based on which from Kernighan & Pike "The UNIX Programming Environment"

oldpath=$PATH
PATH=/bin:/usr/bin

usage()
{
    echo "Usage: $0 [-afrwx] [-p path] command ..." >&2
    exit 1
}

tflag=-x
aflag=no
while [ $# -gt 0 ]
do
    case $1 in
    -[frwx])
        tflag=$1
        shift;;
    -p) oldpath=$2
        shift 2;;
    -a) aflag=yes
        shift;;
    --) shift;
        break;;
    -*) usage;;
    *)  break;;
    esac
done

case $# in
0)  usage;;
esac

PATHDIRS=`echo $oldpath | sed ' s/^:/.:/
                            s/::/:.:/g
                            s/:$/:./
                            s/:/ /g'`


for cmd in $*
do
    fflag=no
    case "$cmd" in
    */*)
        if [ ! -d $cmd ] && [ $tflag $cmd ]
        then echo $cmd
        else echo "$cmd: not found" 1>&2
        fi;;

    *)
        for directory in $PATHDIRS
        do
            if [ ! -d $directory/$cmd ] && [ $tflag $directory/$cmd ]
            then
                echo $directory/$cmd
                fflag=yes
                [ $aflag = no ] && break
            fi
        done
        if [ $fflag = no ]
        then
            echo "$cmd: not found" >&2
        fi
    esac

done

答案2

我猜它会被命名为 perl5.10,而不仅仅是 perl。

相关内容