Skip to main content.
home | support | download

Back to List Archive

Re: "Ambiguous use" swish.cgi error

From: Bill Moseley <moseley(at)>
Date: Mon Jan 28 2002 - 20:19:50 GMT
At 12:02 PM 01/28/02 -0800, Kate Ericson wrote:
>      push @query_string,  "$p=" . $q->escape( $_ ) for @settings;
>I tried replacing that line with the code you gave me, and it looks like 
>the original error is gone

Are you sure you are running the version of perl you think you are?

Here's my version:

Hum.  Looks like we are running very similar perls.

57) ~ %perl -v
This is perl, version 5.005_03 built for sun4-solaris

Remember the original problem "Ambiguous use"?  My response was this:

58) ~ %perl5.00503 -we '%x = ( package => 4 )'
Name "main::x" used only once: possible typo at -e line 1.

59) ~ %perl5.005 -we '%x = ( package => 4 )'
Name "main::x" used only once: possible typo at -e line 1.

60) ~ %perl5.002 -we '%x = ( package => 4 )'
Ambiguous use of package => resolved to "package" => at -e line 1.
Identifier "main::x" used only once: possible typo at -e line 1.

So it really looks like you are running an older version to get that
"Ambiguous use" message.

So to make sure, first run

    perl -v

then run the script like:

    perl -c swish.cgi

and let me know if you get the same syntax errors.  5.00503 should handle
that syntax just fine (and it does on the machines I'm running).

>I ran perl again and got the following errors:
>syntax error at ./swish.cgi line 1306, near "$buffer foreach "

>My script shows:
>1306: push @{$query_match{$layer}{$_}}, $buffer foreach @fields;

That can be written 

foreach ( @fields ) {
   push @{$query_match{$layer}{$_}};

but both are find in 5.00503

Bill Moseley
Received on Mon Jan 28 20:20:22 2002