Re: RFC 218 (v1) C<my Dog $spot> is just an assertion
[email protected] (Michael G Schwern) Thu, 14 Sep 2000 15:41:36 -0400
| Newsgroups | perl.perl6.language.objects |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Sep 14, 2000 at 02:19:38PM +0100, Piers Cawley wrote: > Michael G Schwern <[email protected]> writes: > > package Dog; > > use fields qw(this night up); > > > > my Dog $ph = []; > > $ph->{this} = "that"; > > That works? I thought you had to do: > > my Dog $self = fields::new('Dog'); Nope. fields::new() basically just does C<bless [\%{"$class\::FIELDS"}], $class>, but the current pseudohash implementation doesn't care if something is an object or not. It just cares about either A) its type or B) what's in $ph->[0]. I don't know if this is a good thing or a bad thing, but there's nothing on the table to change it (yet). my Dog $ph = []; $ph->{this} = "that"; deparses at compile-time to: my Dog $ph = []; $ph->[$Dog::FIELDS{this}] = "that"; # actually the %FIELDS lookup is also # done at compile time, but I left # it in for illustration. -- Michael G Schwern http://www.pobox.com/~schwern/ [email protected] Just Another Stupid Consultant Perl6 Kwalitee Ashuranse Sometimes these hairstyles are exaggerated beyond the laws of physics - Unknown narrator speaking about Anime