Re: [COMMITTERS] pgsql: Clean up Perl code according to perlcritic

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: [COMMITTERS] pgsql: Clean up Perl code according to perlcritic
Date: 2017-03-28 00:58:53
Message-ID: 4193.1490662733@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

I wrote:
> Peter Eisentraut <peter_e(at)gmx(dot)net> writes:
>> Clean up Perl code according to perlcritic

> This seems to have broken the regression tests (specifically, dblink)
> on at least some of the Windows buildfarm critters.

I'm hardly a Perl expert, but it looks to me like the culprit is this
hunk in vcregress.pl:

@@ -521,8 +521,9 @@ sub fetchRegressOpts
# an unhandled variable reference. Ignore anything that isn't an
# option starting with "--".
@opts = grep {
- s/\Q$(top_builddir)\E/\"$topdir\"/;
- $_ !~ /\$\(/ && $_ =~ /^--/
+ my $x = $_;
+ $x =~ s/\Q$(top_builddir)\E/\"$topdir\"/;
+ $x !~ /\$\(/ && $x =~ /^--/
} split(/\s+/, $1);
}
if ($m =~ /^\s*ENCODING\s*=\s*(\S+)/m)

The first line in that block is actually intending to modify the value
it's inspecting, and perlcritic's "improved" version carefully removes
the side-effect.

No doubt there are cleaner ways to do that (the comments in "man perlfunc"
about this coding technique are not positive), but this way is not
cleaner, it is broken.

regards, tom lane

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Rafia Sabih 2017-03-28 03:57:11 Re: [COMMITTERS] pgsql: Improve access to parallel query from procedural languages.
Previous Message Andrew Dunstan 2017-03-28 00:54:47 Re: pgsql: Clean up Perl code according to perlcritic

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Langote 2017-03-28 00:59:30 Re: Partitioned tables and relfilenode
Previous Message Amit Langote 2017-03-28 00:57:09 Re: Bug in get_partition_for_tuple