theandygrant has asked for the wisdom of the Perl Monks concerning the following question:

Hi,

I've been using activePerl build 522 for several years on Win98. I've just downloaded and installed build 805, and added WIN32::ASP.

if I type perl -v it confirms that I'm running 5.8.0

but my perlscript is failing with:

Perl 5.006 required--this is only version 5.00503, stopped at C:/PERL/ +lib/vars.pm. BEGIN failed--compilation aborted at C:/PERL/lib/vars.pm + line 3. BEGIN failed--compilation aborted at C:/PERL/site/lib/Win32/ +OLE/Variant.pm line 7. BEGIN failed--compilation aborted at C:/PERL/s +ite/lib/WIN32/ASP.pm line 34. BEGIN failed--compilation aborted line +1.
Is this because I didn't uninstall the previous version first? What do I need to do to get things working?

Any advice much appreciated. Andy

Replies are listed 'Best First'.
Re: upgrading activeperl
by Nkuvu (Priest) on Feb 24, 2003 at 17:15 UTC

    Are you sure the new installation went to the same place as the old installation? Specifically, do you perhaps have another Perl installation hanging around?

    Did this script work before the new installation? And what does the script look like?

      checking control panel shows me I do indeed still have activeperl 522 installed in addition to build 805. Trying to remove it causes an illegal operation as well. I'm now removing 805 in the hope I can then remove 522, and start over.

      The script didn't work before the installation but it was just saying syntax error. This is my first attempt at perlscript rather than perl, and I was hoping win32::asp would be gentler on me

      the script looks like this btw (it's building a decent query string for a site search.)

      use WIN32::ASP; $sqlStatement = ""; If (GetFormValue('SearchText') ne "") { my $conj; my $query=GetFormValue('SearchText'); $query=~s/([\(\)])/ $1 /g; $query=~tr/A-Z/a-z/; $query=~tr/a-z0-9() //cd; $query=~tr/ / /s; $query=~s/^ //; $query=~s/ $//; foreach $word (split(/ /,$query)) { if ($word=~/^(and|or|not|\(|\))$/) { $word=~tr/a-z/A-Z/; $sqlStatement.=" AND" if (($word eq "NOT") && ($preWord!=~ +/^and|or$/i)); $sqlStatement.=" $word"; $conj=$word; } else { $sqlStatement.=" AND" unless ($conj || !$sqlStatement); $sqlStatement.=" keywords LIKE '%$word%'"; $conj=""; } $prevWord=$word; } } $sqlStatement="WHERE $sqlStatement" if $sqlStatement; $Response->Redirect("search2.asp?searchtext=$sqlStatement"); %>
      thanks, andy
        checking control panel shows me I do indeed still have activeperl 522 installed in addition to build 805. Trying to remove it causes an illegal operation as well. I'm now removing 805 in the hope I can then remove 522, and start over.

        If that fails you can double check your path environment variable to see if you can convince it to use the correct version of Perl.

        I'm not familiar with Win32::ASP, so can't comment on that at all. But what was the syntax error you were getting prior to this?