On Fri, Sep 19, 2003 at 11:49:03AM -0400, Jeff Trawick wrote:
> a.k.a. "What should the apxs 2.0 require statement say?"
>
> apxs says "require 5.003;"
>
> on an old Sun box with this installation:
>
> $ which perl
> /opt/LWperl/bin/perl
> $ perl -version
>
> This is perl, version 5.003 with EMBED
> built under solaris at Mar 12 1997 03:06:34
> + suidperl security patch
>
> Copyright 1987-1996, Larry Wall
>
> Perl may be copied only under the terms of either the Artistic License
> or the
> GNU General Public License, which may be found in the Perl 5.0 source kit.
>
> apxs fails to build a module, giving this error message from Perl:
>
> Can't modify stub in list assignment at /tmp/trawick/built/bin/apxs line
> 600, ne
> ar ");"
>
> Line 600 has
>
> 597 # the '()=' trick forces list context and the scalar
> 598 # assignment counts the number of list members (aka number
> 599 # of matches) then
> 600 my $cntopen = () = ($before =~ m|^\s*<[^/].*$|mg);
> 601 my $cntclose = () = ($before =~ m|^\s*</.*$|mg);
Wow. I thought anything older than 5.004 could be considered
dead and buried.
Try this:
my $cntopen = @{[($before =~ m|^\s*<[^/].*$|mg)]};
Or this:
my $cntopen = 0;
while ($before =~ m|^\s*<[^/].*$|mg) {
$cntopen++;
}
> This silly perl won't even allow var declaration on foreach :)
>
> foreach my $var (@list)
The 'my' can not be on the foreach line for Perl 5.003.
Just move it one line up.
my $var;
foreach $var (@list) {
...
}
Cheers,
Glenn