sub is_numeric {
local $_=shift;
return if not defined $_;
}
####
use Scalar::Util 'looks_like_number';
sub is_numeric {
local $_=shift;
if (!ref $_) {
return looks_like_number($_);
}
}
##
##
use Scalar::Util 'looks_like_number', 'blessed';
sub is_numeric {
local $_=shift;
if (!ref $_) {
return looks_like_number($_);
}
if (!blessed $_) {
return;
}
}
##
##
use Scalar::Util 'looks_like_number', 'blessed';
require overload;
sub is_numeric {
local $_=shift;
if (!ref $_) {
return looks_like_number($_);
}
if (!blessed $_) {
return;
}
if (!overload::Overloaded $_) {
return;
}
}
##
##
use Scalar::Util 'looks_like_number', 'blessed';
require overload;
sub is_numeric {
local $_=shift;
if (!defined $_) {
return;
}
if (!ref $_) {
return looks_like_number($_);
}
if (!blessed $_) {
return;
}
if (!overload::Overloaded $_) {
return;
}
if ($_->can('is_numeric')) {
return $_->is_numeric;
}
# or just return; if it should be false per default
return 1;
}