That code uses the non-preferred "indirect object" notation:
methodname classname (params);
where $self represents the classname, because it is blessed into that class.
The identical process is better accomplished by re-writing that as:
my $map = $self->match_maprow_by_hash ( $first );
See "Method Call Variations" and '"indirect object" notation' in "perldoc perlobj".
"I'm fairly sure if they took porn off the Internet, there'd only be one website left, and it'd be called 'Bring Back the Porn!'"
-- Dr. Cox, Scrubs