package X;
sub new {
my $self = shift;
printf "new() v1\n";
return bless {}, $self;
}
sub blah { printf "blah v1\n"; }
1;
####
package X;
sub new {
my $self = shift;
printf "new() v2\n";
return bless {}, $self;
}
sub blah { printf "blah v2\n"; }
1;
####
#!/usr/bin/perl
use lib '.';
use X;
my $x1 = X->new();
$x1->blah;
printf "Copying in X2.pm\n";
system("cp X2.pm X.pm");
printf "Trying X.pm\n";
eval `cat X.pm`;
$x1->blah;
my $x2 = X->new();
####
[me@host tmp]$ cp X1.pm X.pm
[me@host tmp]$ ./x.pl
new() v1
blah v1
Copying in X2.pm
Trying X.pm
blah v2
new() v2