--- Michael Stevens <[EMAIL PROTECTED]> wrote:

> #!/home/mstevens/tools/perl-5.8.8/bin/perl
> 
> use Module::CPANTS::Analyse;
> use Data::Dumper;
> 
> print "Analysing: " . $ARGV[0] . "\n";
> 
> open FH, ">/tmp/out" || die;
> print FH "1\n";
> my $analyser = Module::CPANTS::Analyse->new (
>                                          {
>                                          dist => $ARGV[0]
>                                         }
> );
> print FH "2\n";
> print FH $a->unpack;

You're not using strict and warnings.  If you had, you might have seen
that $analyzer was used only once.  However, $a would not have thrown
an error on compile because $a is a special variable used in sorting. 
However, you probably would have gotten an error about not being able
to call a method on an undefined variable.

The docs suggest what you're doing is OK, but it appears that there's a
typo on the docs.  From the analyze.t test in the test suite:

  my $a=Module::CPANTS::Analyse->new({
      dist=>'t/eg/Acme-DonMartin-0.06.tar.gz',
      _dont_cleanup=>$ENV{DONT_CLEANUP},
  });

  my $rv=$a->unpack;

Switching $analyze to $a should work.

However, it's not recommend to use the special $a and $b variables in
this way since they're for sorting.  Converting all of your $a
variables to $analyze and using strict and warnings should help.

Cheers,
Ovid

--

Buy the book -- http://www.oreilly.com/catalog/perlhks/
Perl and CGI -- http://users.easystreet.com/ovid/cgi_course/

Reply via email to