У меня проблема с одним из модулей Perl DB_File.pm - PullRequest
0 голосов
/ 20 июня 2019

DB_File.pm выдает следующую ошибку:

AH00094: Командная строка: '/ usr / sbin / httpd -D FOREGROUND' Аргумент "/ home / epri ..." не числовой взапись подпрограммы в /usr/lib64/perl5/vendor_perl/DB_File.pm строка 287, строка 4. в /usr/lib64/perl5/vendor_perl/DB_File.pm строка 287, строка 4.

Я не уверенпочему это происходит.

Я нахожусь в процессе сертификации моего приложения CGI с CentOS7.В настоящее время он отлично работает с 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 и столкнулся с подобной проблемой, пожалуйста, дайте мне знать, если есть какое-либо решение для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...