#! /usr/bin/perl
use warnings;
use strict;
package ABCconf;
sub Query {
my( $package ) = caller;
print "Query called from $package\n";
my $x = ABCconf::Query->new();
}
sub Insert {
print "Insert called\n";
my $x = ABCconf::Query->new(); # <= problem: calls ABCconf::Query and then on its output ->new
} # Insert
package ABCconf::Query;
sub new {
my $class = shift;
print "New called: $class\n";
return bless {}, $class;
} # new
package main;
ABCconf::Query();
print "-" x 60, "\n";
ABCconf::Insert();
####
D:\>perl testBug.pl
Query called from main
New called: ABCconf::Query
------------------------------------------------------------
Insert called
Query called from ABCconf
New called: ABCconf::Query
New called: ABCconf::Query=HASH(0x226290)
Attempt to bless into a reference at testBug.pl line 24.
##
##
#! /usr/bin/perl
use warnings;
use strict;
package ABCconf;
sub Insert {
print "Insert called\n";
my $x = ABCconf::Query->new();
} # Insert
sub Query {
my( $package ) = caller;
print "Query called from $package\n";
my $x = ABCconf::Query->new();
}
package ABCconf::Query;
sub new {
my $class = shift;
print "New called: $class\n";
return bless {}, $class;
} # new
package main;
ABCconf::Query();
print "-" x 60, "\n";
ABCconf::Insert();
##
##
D:\>perl testBug.pl
Query called from main
New called: ABCconf::Query
------------------------------------------------------------
Insert called
New called: ABCconf::Query
##
##
D:\>perl -v
This is perl, v5.8.8 built for MSWin32-x86-multi-thread
(with 18 registered patches, see perl -V for more detail)
Copyright 1987-2007, Larry Wall
Binary build 822 [280952] provided by ActiveState http://www.ActiveState.com
Built Jul 31 2007 19:34:48
...