Re: PL/Perl regression tests with use_strict

From: Michael Fuhr <mike(at)fuhr(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-patches(at)postgresql(dot)org, Andrew Dunstan <andrew(at)dunslane(dot)net>
Subject: Re: PL/Perl regression tests with use_strict
Date: 2005-08-24 05:37:26
Message-ID: 20050824053726.GA34097@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches

On Tue, Aug 23, 2005 at 10:30:51PM -0600, Michael Fuhr wrote:
> Global symbol "$x" requires explicit package name at (eval 3) line 1.
>
> If I'm reading the Perl source code correctly (pp_ctl.c), the number
> following "eval" comes from a variable named PL_evalseq that's
> incremented each time it appears in one of these messages. It looks
> like we'd have to munge the error message to get rid of that.

Hmmm...tests suggest that we might be able to munge $@ in the
mk*safefunc functions. That is, instead of doing

return eval($stuff);

we might be able to do

my $retval = eval($stuff);
$@ =~ s/ \(eval \d+\) / /g if $@;
return $retval;

That would convert messages like

Global symbol "$x" requires explicit package name at (eval 3) line 1.

into

Global symbol "$x" requires explicit package name at line 1.

Is that what you're looking for? So far I've done only simple tests
in standalone embedded Perl programs, so I don't know if this approach
would work in PL/Perl or have unintended effects.

--
Michael Fuhr

In response to

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Andrew Dunstan 2005-08-24 05:38:46 Re: PL/Perl regression tests with use_strict
Previous Message Michael Fuhr 2005-08-24 04:30:51 Re: PL/Perl regression tests with use_strict