From:                   christopher j bottaro <[EMAIL PROTECTED]>
> hello again,
> all my c instincts tell me i shouldn't write a function like this: sub
> myfunc()      {
>  my $aref = [];
>  if ( some_cond )     {
>   return undef;
>  }
>  else {
>   #populate @{$aref}
>   return $aref;
>  }
> }
> but its cool, right?

Yes this is fine in Perl. Perl simply does the right thing :-)
 
> i know what i really should do is this:
> sub myfunc()  {
>  my @array;
>  if ( some_cond )     {
>   return undef;
>  }
>  else {
>   #populate @array
>   return [ @array ];
>  }
> }

Well ... I would use

        return \@array;

it's a bit more Perlish and actually I expect it to be quicker.
(Benchmarking is left to the reader)

> anyways, second question:  how do i create/invoke a function ref?
> 
> i wanna do something like this:
> sub myfunc()  {
>  #blah blah
> }
> my $fref = \&myfunc();  # is this right?

without the ():

        my $fref = \&myfunc;

> &{$fref}($arg1, $arg2);  #is this right?  are there any shortcuts like
> $fref->($arg1, $arg2)?  i know this is the syntax for invoking a
> method, but i don't wanna go thru the hassle of making a class

Both these syntaxes are OK. No need for any classes or whatever.

Jenda

===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
        -- Terry Pratchett in Sourcery


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to