my (%BIN, %CACHE); sub data { ... return $CACHE{$class} || undef } sub is_binary { keys %{_all($_[1])} ? !!$BIN{$_[1]}{$_[2]} : undef } ## later on inside Mojo::Loader my $all = $CACHE{$class} = {}; $all->{$name} = $name =~ s/\s*\(\s*base64\s*\)$// && ++$BIN{$class}{$name} ? b64_decode($data) : $data; ## later on outside Mojo::Loader my $same = Mojo::Loader->new->data('class'); $same = Mojo::Loader->new->data('class'); my $same_also = Mojo::Loader->new->data('class', 'file'); $same_also = Mojo::Loader->new->data('class')->{'file'};