On 2014-02-06 Ben Edwards <[email protected]> wrote: > for my $attr ($object->meta->get_all_attributes) { > my $name = $attr->name; > > # Lazy attributes that have not already been generated will not > # exist in the object hash. > next unless exists $object->{$name}
I think this is what you're after::
next unless $attr->has_value($object);
See Class::MOP::Attribute, parent class of Moose::Meta::Attribute.
>
> my $value = $object->$name;
Another way to do this is::
my $value = $attr->get_value($object);
which will bypass method modifiers applied to the read-accessor;
alternatively::
my $reader = $attr->get_read_method;
next unless $reader; # attribute does not have a reader
my $value = $object->$reader();
this will call the correct read-accessor (even if it has a different
name from the attribute itself), and all applied modifiers.
> print $value;
> }
--
Dakkar - <Mobilis in mobile>
GPG public key fingerprint = A071 E618 DD2C 5901 9574
6FE2 40EA 9883 7519 3F88
key id = 0x75193F88
Man will never fly. Space travel is merely a dream. All aspirin is
alike.
signature.asc
Description: PGP signature
