develooper Front page | perl.perl5.porters | Postings from June 2003

Re: files that do not pass syntax check

Thread Previous | Thread Next
From:
Alexey Tourbin
Date:
June 2, 2003 01:54
Subject:
Re: files that do not pass syntax check
Message ID:
20030602085348.GA24023@solemn.turbinal.org
On Fri, May 30, 2003 at 09:20:27AM +0200, Rafael Garcia-Suarez wrote:
> > BEGIN failed--compilation aborted at /usr/lib/perl5/bytes_heavy.pl line 4.
> The failure for bytes_heavy.pl is normal, it's not self-contained.

OK, thanks.

I also discovered that some files that pass perl@19525 syntax check
cannot at the same time be deparsed with B::Deparse.  Here is an
example:

$ perl -I/usr/lib/libDrakX -c /usr/lib/libDrakX/interactive.pm
/usr/lib/libDrakX/interactive.pm syntax OK
$ perl -I/usr/lib/libDrakX -MO=Deparse /usr/lib/libDrakX/interactive.pm
Can't locate object method "name" via package "B::NULL" at /usr/lib/perl5/i386-linux/B/Deparse.pm line 3578.
CHECK failed--call queue aborted.
$

First, the line is not reported on which the deparse fails (when BEGIN
fails, the line IS repored).  OK, by commenting out one half, I've
gradually moved found down the line.  It's easy to reproduce:

$ perl -c
my $transl = sub { join '|', map { translate($_) } split(quotemeta($separator), $_[0]) };
^D
- syntax OK
$

Hmm... Shouldn't this be '-c syntax OK' instead?
Now try to deparse this:

$ perl -MO=Deparse
my $transl = sub { join '|', map { translate($_) } split(quotemeta($separator), $_[0]) };
^D
Can't locate object method "name" via package "B::NULL" at /usr/lib/perl5/i386-linux/B/Deparse.pm line 3578.
CHECK failed--call queue aborted.
$

Is this a valid perl syntax, by the way?

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About