in reply to my Dog $spot;
I see two problems with that. First, what if you want a typed variable that's empty?
my Dog $spot; # new Dog my Dog $dog = $spot; # oops - create a Dog just to destroy it
The other problem I see with making that change is that every use of my winds up with run-time overhead to call attributes::import. If you limit it only to my statements with types, that might be OK, but the more general case would suggest that my $rover would call attributes::import in the current package with an empty list, too.
In either case, I think it's too much overhead for the sake of some nice object constructor syntax.
That said, ++ for cool exploration of attributes.pm. That attributes as constructor trick might be useful for quick-and-dirty generic objects with dynamically-generated accessors.
my Object $soldier : name rank serial_no; $soldier->name( "Damian" );
-xdg
Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: my Dog $spot;
by Zaxo (Archbishop) on Jun 07, 2006 at 07:19 UTC | |
by TedYoung (Deacon) on Jun 07, 2006 at 16:24 UTC | |
by TimToady (Parson) on Jun 07, 2006 at 18:01 UTC | |
by Zaxo (Archbishop) on Jun 08, 2006 at 01:28 UTC |