From b060f57791cfd84ec7c7eb84eb1d1d38b39aa0a5 Mon Sep 17 00:00:00 2001 From: John Naylor Date: Mon, 12 Sep 2022 11:59:43 +0700 Subject: [PATCH] Make eval statement naturally proof against perltidy This is a bit less verbose than adding an exception. Rewrite the other eval statement in Catalog.pm as well, just for the sake of consistency. Idea from Andrew Dunstan Discussion: https://www.postgresql.org/message-id/CAD5tBc%2BzRhuWn_S4ayH2sWKe60FQu1guTTokDFS3YMOeSrsozA%40mail.gmail.com --- src/backend/catalog/Catalog.pm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/backend/catalog/Catalog.pm b/src/backend/catalog/Catalog.pm index 1546e1b3350..919a828ca73 100644 --- a/src/backend/catalog/Catalog.pm +++ b/src/backend/catalog/Catalog.pm @@ -315,10 +315,7 @@ sub ParseData # We're treating the input line as a piece of Perl, so we # need to use string eval here. Tell perlcritic we know what # we're doing. - #<<< protect next line from perltidy - # so perlcritic annotation works - eval '$hash_ref = ' . $_; ## no critic (ProhibitStringyEval) - #>>> + eval "\$hash_ref = $_"; ## no critic (ProhibitStringyEval) if (!ref $hash_ref) { die "$input_file: error parsing line $.:\n$_\n"; @@ -364,7 +361,7 @@ sub ParseData # the whole file at once. local $/; my $full_file = <$ifd>; - eval '$data = ' . $full_file ## no critic (ProhibitStringyEval) + eval "\$data = $full_file" ## no critic (ProhibitStringyEval) or die "error parsing $input_file\n"; foreach my $hash_ref (@{$data}) {