public inbox for [email protected]  
help / color / mirror / Atom feed
From: David Fetter <[email protected]>
To: Andrew Dunstan <[email protected]>
Cc: Alvaro Herrera <[email protected]>
Cc: Michael Fuhr <[email protected]>
Cc: [email protected]
Subject: Re: PL/Perl list value return causes segfault
Date: Tue, 12 Jul 2005 14:01:36 -0700
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
	<[email protected]>
	<[email protected]>
	<[email protected]>

On Tue, Jul 12, 2005 at 03:45:55PM -0400, Andrew Dunstan wrote:
> 
> 
> Alvaro Herrera wrote:
> 
> >On Tue, Jul 12, 2005 at 02:59:37PM -0400, Andrew Dunstan wrote:
> >
> > 
> >
> >>Note that all plperl functions are called in scalar context, and
> >>it is always wrong to return a list (as opposed to a listref). In
> >>fact, the value received might surprise you even if it worked (it
> >>would be the value of the last member of the list).
> >
> >Hmm, I don't know if it's feasible to do in Perl, but maybe check
> >whether the function wants to return something in list context and
> >throw an appropiate error message?
> 
> In perl, if there is any ambiguity it is the called function that is
> responsible for checking, not the caller. See "perldoc -f
> wantarray".  PLPerl explicitly passed G_SCALAR as a flag on all
> calls to plperl routines. So returning a list is a case of pilot
> error.

Is this a kind of pilot error that documents could help avert in some
useful way?

Cheers,
D
-- 
David Fetter [email protected] http://fetter.org/
phone: +1 510 893 6100   mobile: +1 415 235 3778

Remember to vote!



view thread (13+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected], [email protected]
  Subject: Re: PL/Perl list value return causes segfault
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox