[sf-perl] mine vs ours

David Alban extasia at extasia.org
Thu Dec 6 11:52:31 PST 2007


greetings,

I want bar() to access a constant i define in foo().  It can't be
defined outside of foo() because in my "real" program, it depends on a
value computed in foo().  In fact there's going to be a lot of
routines called by foo() that will need

With the my() statement uncommented, it complains "Global symbol
"$SOME_CONSTANT" requires explicit package name".  With the our()
statement uncommented it seems to work.

#!/usr/bin/perl

use strict;
use warnings;

use Readonly;

foo();

sub foo {
  # Readonly::Scalar our $SOME_CONSTANT => 'FOOBAR';
  Readonly::Scalar my $SOME_CONSTANT => 'FOOBAR';
  bar();
} # foo

sub bar {
  print "$SOME_CONSTANT\n";
} # bar

So it would seem to me to use our() rather than my() for this.  Any
reason why I shouldn't?  Sanity checking...

Thanks,
David
-- 
Live in a world of your own, but always welcome visitors.


More information about the SanFrancisco-pm mailing list