> =head1 TITLE
> 
> my Dog $spot should call a constructor implicitly
> 

What, then, happens to the following code:

my Dog $spot;
if ($age > 12) {
    $spot = new Doberman();
} else {
    $spot = new Corgi();
}

Would you seriously propose to create a Dog object, then wipe it in
either branch if the if?

Also, not every class of object can have a default constructor, not is
that always desirable.  Let's take a database handle as an example:

my DBI::dbh $handle;
if ($env eq 'test') {
  $handle = DBI->connect(... connect to test ...);
} else {
  $handle = DBI->connect(... connect to prod...);
}

Reply via email to