1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-13 07:34:50 +00:00
freebsd-ports/devel/p5-Safe-Isa/pkg-descr
Sunpoet Po-Chuan Hsieh e03aa71b33 - Add p5-Safe-Isa 1.000002
Since Perl allows us to provide a subroutine reference or a method name to the
-> operator when used as a method call, and a subroutine doesn't require the
invocant to actually be an object, we can create safe versions of isa, can and
friends by using a subroutine reference that only tries to call the method if
it's used on an object.

e.g. my $isa_Foo = $maybe_an_object->$_call_if_object(isa => 'Foo');

Note that we don't handle trying class names, because many things are valid
class names that you might not want to treat as one (like say "Matt") - the
is_module_name function from Module::Runtime is a good way to check for
something you might be able to call methods on if you want to do that.

WWW: http://search.cpan.org/dist/Safe-Isa/
2012-07-30 19:22:48 +00:00

15 lines
747 B
Plaintext

Since Perl allows us to provide a subroutine reference or a method name to the
-> operator when used as a method call, and a subroutine doesn't require the
invocant to actually be an object, we can create safe versions of isa, can and
friends by using a subroutine reference that only tries to call the method if
it's used on an object.
e.g. my $isa_Foo = $maybe_an_object->$_call_if_object(isa => 'Foo');
Note that we don't handle trying class names, because many things are valid
class names that you might not want to treat as one (like say "Matt") - the
is_module_name function from Module::Runtime is a good way to check for
something you might be able to call methods on if you want to do that.
WWW: http://search.cpan.org/dist/Safe-Isa/