http://qs1969.pair.com?node_id=1074661


in reply to Re: Importing variables (not functions) from in-file packages
in thread Importing variables (not functions) from in-file packages

Ahhh interesting. I didn't know that one could step in & out of a package multiple times. Thanks
  • Comment on Re^2: Importing variables (not functions) from in-file packages

Replies are listed 'Best First'.
Re^3: Importing variables (not functions) from in-file packages
by tobyink (Canon) on Feb 12, 2014 at 21:29 UTC

    Yup - and you don't even need to do so at the "top level". package statements can appear within blocks. Like...

    package main; use strict; use warnings; { package Person; use Data::Dumper (); # load, but import nothing! sub new { my $class = shift; bless {@_}, $class; } sub dump { my $self = shift; package Data::Dumper; # The following line is executed in Data::Dumper, # so it can see the "Dumper" sub defined there! print Dumper($self); } # We're back to the Person package here because # the closing brace ended the Data::Dumper package printf "Line %d is in package %s\n", __LINE__, __PACKAGE__; } # And now we're back to the main package. printf "Line %d is in package %s\n", __LINE__, __PACKAGE__; my $bob = Person->new(name => 'Robert'); $bob->dump;
    use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name