$self->Session::init (@args);
####
my $obj=new Some::Module; # ok but not so cool
my $obj=Some::Module->new(); # TWTDI
##
##
package Session;
#....
sub new {
my $proto=shift;
my $class=ref($proto) || $proto;
my $self=bless {}, $class;
# the below line assumes that this new is from
# the Session class
$self->init(@_); #no need to copy @_
return $self;
};
##
##
package SessionManager;
#....
sub MakeNewSession {
my $self=shift;
my $session=Session->new()
|| die "Failed to construct Session!";
my $id=$session->SessionID;
die "SessionID returned an undef value!"
if !defined($id);
print "New session has ID of ".$i;
return $session;
}