in reply to Global Functions? sent and returned values

What you show is typical for class methods, though $_[0] would ordinarily be called $class or $stash when it's shifted in.

Usually the leading underscore signifies an internal function which should not be called from other namespaces. That is a convention, Perl does nothing to enforce it.

If you want an ordinary function, not a class method, leave out the class name shift and call like this:

$foo = Whaterverlib::pmfile::nameoffunction($sent);
with nameoffunction written as,
sub nameoffucntion { my $recieved = shift; my $value = whatever; return $value; }

In general, dereference arrow notation puts an extra argument in @_ - either the name of the class, or a reference to the instance which called the object method.

After Compline,
Zaxo