On Thu, 19 Aug 2004 17:52:18 +0200, Juerd <[EMAIL PROTECTED]> wrote:
> Ouch. You have foo-bar-baz code *at work*? :)
Unfortunately, some of the code here is much worse than that.
> In fact, this was anticipated and the doesn't-exist case is explicitly
> documented as:
>
> If the parameter does not exist at all, then param() will return
> undef in a scalar context, and the empty list in a list context.
Sure enough. And I've even read a large percentage of the (unwieldy)
CGI.pm docs. But I was using C<param> as an example. The behavior
would exist with any subroutine that used C<return;>.
> > I can't imagine how much trouble this would have caused me if I didn't
> > know about the C<return;> special case.
>
> There is no need to know about the special case, because you can read
> exactly how it works in the documentation.
The point that it's documented for C<param> and for C<return> doesn't
remove the fact that while this DWIM the majority of the time, it can
be the cause of a subtle bug. I'm sure many people don't know about
the DWIM behavior. Or aren't actively aware of it.
> > my $string = join "," => @array;
>
> my $string = join "," <== @array;
>
> It's a 180, but it'll workforme.
I think I'm going to go with C< @array.join(",") >. :)
--
matt
>
> Juerd