All pastes #208309 Raw Edit

Anonymous

public text v1 · immutable
#208309 ·published 2006-10-18 15:05 UTC
rendered paste body

use Data::Dumper;


{
	package Foo;

	sub new {
		my ($class) = @_;
		{
			no strict 'refs';
			*{"$class\::run"} = 
			  sub {
				  my $self = shift;
				  my $class = ref($self);
				  print "in $class, but in " . __PACKAGE__ . " \n";
				  $self->SUPER::run();
				  print "in $class \n";
			  };
		}
		bless {}, $class;
	}
	
	sub run {
		my $self = shift;
		print "in " . __PACKAGE__ . "\n";
		print "now going down\n";
		print "in " . __PACKAGE__ . "\n";
		  
	}

}

{
	package Foo::Bar;
	use base qw(Foo);

}

{
	package Foo::Bar::Baz;
	use base qw(Foo::Bar);


}

{
	package Foo::Bar::Baz::Mod;
	use base qw(Foo::Bar::Baz);
}


my $obj = Foo::Bar::Baz::Mod->new();
$obj->run;