指定perl脚本在早期版本的perl

时间:2017-07-10 15:00:00

标签: perl

我有一些旧的生产计算机,它有Perl 5.0(更新版本1998)。 我使用Activestate Perl 5.24.1在我的办公室计算机上开发了一个脚本

当我尝试在旧版本(在Windows XP上安装)上运行时,它会丢弃几个警告,等等无法了解USE Warnings;three parameter open函数。

我们的关键字不能与use strict;

一起使用
our %Config = (
        'SourcePath' => "",
        'TargetPath' => "",
        'Station'    => "",
        'Product'    => "",
        'LogLevel'   => 0
    );

当我尝试打印带有哈希变量的字符串时,它也会发出警告。 代码是:

print $fhw qq/  <FACTORY NAME="FLEX_ZALA" TESTER="$Config{'Station'}" FIXTURE="" USER="" LINE="" SHIFT="" \/>\n/;

不知道Station变量。

我无法在生产机器上开发,但也无法在我的办公室计算机上安装这个旧版本。

如何强制在兼容模式5.0中使用perl 5.24.1运行我的脚本?

我使用Windows 7 X64 PC办公。

感谢。

UPD1: XP Perl版本是:

  

Microsoft Windows XP [版本5.1.2600](C)版权所有1985-2001   微软公司

     

C:\ Documents and Settings \ grprog1&gt; perl -v

     

这是perl,版本5.003_07

     

版权所有1987-1996,Larry Wall

    + suidperl security patch
    Win32 port Copyright (c) 1995-1996 Microsoft Corporation.
            All rights reserved.
    Developed by ActiveWare Internet Corp., http://www.ActiveWare.com
     

Perl for Win32 Build 316 - 1998年3月13日09:44:44

     

Perl只能根据艺术许可的条款进行复制   或GNU通用公共许可证,可以在Perl 5.0中找到   源工具包。

UPD2:

C:\Documents and Settings\grprog1>perl -V Summary of my perl5 (patchlevel 1) configuration:   Platform:
    osname=MSWin32, osver=3.51, archname=i386-win32
    uname=''
    hint=recommended   Compiler:
    cc='cl', optimize=''
    cppflags=''
    ccflags =''
    ldflags =''
    stdchar='char', d_stdstdio=, usevfork=false
    voidflags=15, castflags=0, d_casti32=, d_castneg=
    intsize=4, alignbytes=4, usemymalloc=n, randbits=15   Libraries:
    so=dll
    libpth=
    libs=
    libc=   Dynamic Linking:
    dlsrc=dl_win32.xs, dlext=pll, d_dlsymun=
    cccdlflags='', ccdlflags='', lddlflags=''


Characteristics of this binary (from libperl):   Built under MSWin32   Compiled at Mar 13 1998 09:44:44   @INC:
    C:\Teradyne\GRNavigate\228x\lib\perl
    ..\lib\i386-win32
    ..\lib
    .

2 个答案:

答案 0 :(得分:2)

如果我理解正确,您的计算机A有perl 5.003_7。因此,将该分发从计算机A复制到要进行开发的计算机B是最直接的答案。

你说测试人员也有这个版本的Perl。因此,贵公司必须从ActiveState购买站点许可证或某些特定数量的许可证。你应该先调查一下。

如果您遇到困难,请与ActiveState联系以获取支持。他们可能会收取一个费用。

然而,您的公司面临的问题是,操作依赖于古老的,不再支持的软件来运行可能存在问题的程序。进入这个世纪是一个好主意。

答案 1 :(得分:0)

如果你绝对必须,无法绕过它,运行古老的perl,你的脚本就不能使用更现代的东西了。

在开发/测试框中查看perlbrew有多个perl版本,这样您就可以使用一个命令在多个perl版本上测试代码。

也许http://perldoc.perl.org/perl.html可以查看旧版perls的文档。  它可以追溯到5.8.8(〜2005),但比在你的情况下使用5.24的文档更好。