In my opinion the perceived "need" for this feature comes from too much attachment to the perfectly ordinary method name "new".
Once you realize that not all factory/constructor methods have to be called "new", things become much clearer.
my $person = People->new()->etc...
...
my $himagain = People->restore($id);
Other useful constructor names can be "new_from_file", "new_named", etc. That way, particularly when the arguments are called $a, $b, $c, you'll have documented what the (sometimes quite substantial) differences are between all the overloaded "new" methods.