develooper Front page | perl.perl5.porters | Postings from January 2022

Re: Things you can't do in a signatured sub

Thread Previous | Thread Next
From:
Darren Duncan
Date:
January 20, 2022 06:13
Subject:
Re: Things you can't do in a signatured sub
Message ID:
7e60d097-0d26-899d-5dac-0a8c1930f568@darrenduncan.net
On 2022-01-19 9:32 p.m., Dan Book wrote:
> On Thu, Jan 20, 2022 at 12:20 AM Darren Duncan wrote:
>     On 2022-01-19 12:43 p.m., Alexander Hartmaier wrote:
>      > I have one sad example to add: defining a sub that is passed as a
>     callback to a
>      > module which doesn't document the (number of) arguments and call it in
>     different
>      > parts with a different number of arguments. Example I'm just dealing with is
>      > Mojo::RabbitMQ::Client.
>      > In the end I gave up and didn't specify a signature to avoid exceptions
>     caused
>      > by the different number of arguments.
> 
>     So here's a question.  The way signatures work now, if one puts "@" at the end
>     of the signature, does that say silently accept but throw away the extra
>     arguments, or is there some way in a signature to say explicitly that you
>     take a
>     variable number of arguments and there is an array you can get "the rest" in?
> 
> ($arg, @rest)

Okay, so in that case, I disagree with what Alexander said.  It sounds like 
there is nothing you can't do with signatures that you could do before.  If you 
declare the signature with an array to capture miscellaneous extras, then 
problem doesn't exist.  Alexander, do you agree? -- Darren Duncan

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About