A package does not have to be loaded to be useful e.g. we can add a sub to a package and then call it, even though we didn't load it:
% perl -E '*Some::Module::foo = sub { say "hello" }; Some::Module::foo
+()'
hello
thus it makes sense to be able to test it with
can (whether we loaded it or not).
It seems that as an empty package can do nothing, searching for 'can' leads to nothing.
% perl -E 'say Some::Module->can("can")'
However this is not the case for a non-empty package:
% perl -E '*Some::Module::foo = sub { }; say Some::Module->can("can")'
+
CODE(0x259d370)
or even
% perl -E '*Some::Module::foo = sub { say "far out man!" }; say Some::
+Module->can("can")->("Some::Module", "foo")->()'
far out man!
1