How to Install and Uninstall perl-Safe-Isa Package on openSUSE Leap
Last updated: December 29,2024
1. Install "perl-Safe-Isa" package
In this section, we are going to explain the necessary steps to install perl-Safe-Isa on openSUSE Leap
$
sudo zypper refresh
Copied
$
sudo zypper install
perl-Safe-Isa
Copied
2. Uninstall "perl-Safe-Isa" package
Please follow the guidelines below to uninstall perl-Safe-Isa on openSUSE Leap:
$
sudo zypper remove
perl-Safe-Isa
Copied
3. Information about the perl-Safe-Isa package on openSUSE Leap
Information for package perl-Safe-Isa:
--------------------------------------
Repository : Main Repository
Name : perl-Safe-Isa
Version : 1.000010-bp155.2.12
Arch : noarch
Vendor : openSUSE
Installed Size : 13.6 KiB
Installed : No
Status : not installed
Source package : perl-Safe-Isa-1.000010-bp155.2.12.src
Upstream URL : http://search.cpan.org/dist/Safe-Isa/
Summary : Call isa, can, does and DOES safely on things that may not be objects
Description :
How many times have you found yourself writing:
if ($obj->isa('Something')) {
and then shortly afterwards cursing and changing it to:
if (Scalar::Util::blessed($obj) and $obj->isa('Something')) {
Right. That's why this module exists.
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. So:
my $isa_Foo = $maybe_an_object->$_call_if_object(isa => 'Foo');
is equivalent to
my $isa_Foo = do {
if (Scalar::Util::blessed($maybe_an_object)) {
$maybe_an_object->isa('Foo');
} else {
undef;
}
};
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.
We are careful to make sure that scalar/list context is preserved for the
method that is eventually called.
--------------------------------------
Repository : Main Repository
Name : perl-Safe-Isa
Version : 1.000010-bp155.2.12
Arch : noarch
Vendor : openSUSE
Installed Size : 13.6 KiB
Installed : No
Status : not installed
Source package : perl-Safe-Isa-1.000010-bp155.2.12.src
Upstream URL : http://search.cpan.org/dist/Safe-Isa/
Summary : Call isa, can, does and DOES safely on things that may not be objects
Description :
How many times have you found yourself writing:
if ($obj->isa('Something')) {
and then shortly afterwards cursing and changing it to:
if (Scalar::Util::blessed($obj) and $obj->isa('Something')) {
Right. That's why this module exists.
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. So:
my $isa_Foo = $maybe_an_object->$_call_if_object(isa => 'Foo');
is equivalent to
my $isa_Foo = do {
if (Scalar::Util::blessed($maybe_an_object)) {
$maybe_an_object->isa('Foo');
} else {
undef;
}
};
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.
We are careful to make sure that scalar/list context is preserved for the
method that is eventually called.