[sf-perl] global symbol requires explicit package

Joe McMahon mcmahon at ibiblio.org
Thu Apr 8 14:29:05 PDT 2010


Because you called it "cleanup_subroutine" before, not "cleanup_routine".

A minor cleanup:

use strict;
use warnings;

our $cleanup_subroutine = sub { return 1; };

use Exporter   ();
our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);

$VERSION = do {
  my @r = (q$Revision: 1.4 $ =~ /\d+/g);
  sprintf "%d."."%02d" x $#r, @r;
};

@foo::ISA         = qw( Exporter );
@foo::EXPORT      = qw( $cleanup_subroutine);
@foo::EXPORT_OK   = qw();

sub foo_die {
  defined $cleanup_subroutine and $cleanup_subroutine->();
  exit 255;
} # foo_die

1;

I've moved the cleanup_subroutine declaration to the top as it's more important.
You don't need the BEGIN, so I removed it.
The call syntax I used for the cleanup subroutine is a little cleaner.

 --- Joe M.


More information about the SanFrancisco-pm mailing list