NAME

Perl::Critic::Policy::ErrorHandling::RequireReturnFromEval - Require explicit return in eval blocks

SYNOPSIS

# Bad
my $result = eval { some_function() };

# Good
my $result = eval { return some_function() };

DESCRIPTION

When using eval as an expression to capture a return value, the eval block should use an explicit return statement. This makes the intent clear and avoids confusion about what the eval block returns.

This policy catches eval blocks that lack an explicit return.

# Violation
my $params = eval { JSON::decode_json($content) };

# No violation
my $params = eval { return JSON::decode_json($content) };

This policy only applies to eval { ... } blocks, not eval "string".

CONFIGURATION

This policy is not configurable. It has no options.

METHODS

default_severity

Returns $SEVERITY_MEDIUM.

default_themes

Returns style.

applies_to

Returns PPI::Structure::Block.

violates

Checks if an eval block uses an explicit return statement.

AUTHOR

Blaine Motsinger blaine@renderorange.com

COPYRIGHT AND LICENSE

This software is Copyright (c) 2026 by Blaine Motsinger

This is free software, licensed under:

The GNU General Public License, Version 2, June 1991