# code not tested sub test_this { my $stuff = call_to_external_service(); return $stuff; } #... # subroutine mock for a unit test, e.g., { no warnings qw/redefine/; my $expected = { some => 'expected result'}; local *call_to_external_service = sub { return $expected, }; # now call a test or something that calls is_deeply test_this(), $expected, qw{whatever...}; }