I think the line:

reply_multi( \$daemon{xmpp_o}, \($adminuser{fromJID}, $fromJID), "blah" );

should have \(...) replaced with [ ... ] :

reply_multi( \$daemon{xmpp_o}, [$adminuser{fromJID}, $fromJID], "blah" );

because

\('foo', 'bar')

evaluates to

(\'foo', \'bar')

Does that clarify this for you?

Andrew

On Sat, Jan 13, 2024 at 2:51 PM hw <h...@adminart.net> wrote:

> Hi,
>
> how do I pass an array that is created on the fly as one parameter of
> a function?
>
> Example:
>
>
> use feature 'signatures';
> no warnings 'experimental::signatures';
>
> sub reply_multi ( $xmpp_o, $rcpts, $msg ) {
>     foreach my $rcpt (@$rcpts) {
>         $$xmpp_o->MessageSend( type => 'chat', to => $rcpt, body => $msg );
>     }
>
>     return;
> }
>
> reply_multi( \$daemon{xmpp_o}, \($adminuser{fromJID}, $fromJID), "blah" );
>
>
> This gives me an error at runtime: "Too many arguments for subroutine
> 'main::reply_multi' (got 4; expected 3)".
>
> Yeah, sure, ok, but is that even right?  Or is signatures too
> experimental to handel that yet?  Or how do I do what I want here?
>
>
> --
> To unsubscribe, e-mail: beginners-unsubscr...@perl.org
> For additional commands, e-mail: beginners-h...@perl.org
> http://learn.perl.org/
>
>
>

Reply via email to