我遇到一个perl模块DB_File.pm的问题

时间:2019-06-20 05:11:30

标签: apache perl cgi

DB_File.pm引发以下错误:

AH00094:命令行:'/ usr / sbin / httpd -D FOREGROUND' 在/usr/lib64/perl5/vendor_perl/DB_File.pm的第287行,第4行的子例程条目中,参数“ / home / epri ...”不是数字。  在/usr/lib64/perl5/vendor_perl/DB_File.pm第287行,第4行。

我不确定为什么会这样。

我正在用CentOS7认证我的CGI应用程序。目前,它与CentOS6兼容。在使应用程序与CentOS7兼容的同时,我进行了一些更改,主要是安装缺少的perl模块。

发生错误的子例程如下”。

require Tie::Hash;
sub tie_hash_or_array
{
    my (@arg) = @_ ;
    my $tieHASH = ( (caller(1))[3] =~ /TIEHASH/ ) ;

    use File::Spec;
    $arg[1] = File::Spec->rel2abs($arg[1])
        if defined $arg[1] ;

    $arg[4] = tied %{ $arg[4] }
        if @arg >= 5 && ref $arg[4] && $arg[4] =~ /=HASH/ && tied %{ $arg[4] } ;

    $arg[2] = O_CREAT()|O_RDWR() if @arg >=3 && ! defined $arg[2];
    $arg[3] = 0666               if @arg >=4 && ! defined $arg[3];

    # make recno in Berkeley DB version 2 (or better) work like 
    # recno in version 1.
    if ($db_version >= 4 and ! $tieHASH) {
        $arg[2] |= O_CREAT();
    }

    if ($db_version > 1 and defined $arg[4] and $arg[4] =~ /RECNO/ and
        $arg[1] and ! -e $arg[1]) {
        open(FH, ">$arg[1]") or return undef ;
        close FH ;
        chmod $arg[3] ? $arg[3] : 0666 , $arg[1] ;
    }

    DoTie_($tieHASH, @arg) ; # this is the line where i see the error
                             # isn't numeric in subroutine entry at

}

如果有人将其应用程序从centOS6迁移到CentOS7并遇到类似问题,请告诉我是否有解决方案。

0 个答案:

没有答案