develooper Front page | perl.perl5.porters | Postings from May 2012

Re: RFC: Objective-C style "undef accepts anything"

Thread Previous | Thread Next
From:
Leon Timmermans
Date:
May 29, 2012 02:28
Subject:
Re: RFC: Objective-C style "undef accepts anything"
Message ID:
CAHhgV8j=gWUrk1ujaFN5of5oW5GzT1vknCUVQvOxmuWowv5pfg@mail.gmail.com
On Sun, May 27, 2012 at 2:21 AM, Joe McMahon <mcmahon@ibiblio.org> wrote:
> One of the things I've discovered in the process of writing Objective-C code
> is that its convention that nil (the null pointer) will accept any message -
> but will do nothing in response - vastly simplifies code.
>
> I'm wondering if a pragma to enable this would be a good idea for Perl.
>
> Advantages:
>  - eliminates a lot of "if (defined $foo) { ..." checking. If $foo is
> defined anfd yo send a message to it, then that goes to the object
> associated (unless of course $foo isn't an object). Less code is better
> code.
>
> Disadvantages:
>  - As implemented in Objective-C, the messages sent to nil simply do
> nothing, and there's no notification that the message went to nil. Adding a
> warning pragma for this is an option.
>
> Finer points need to be worked out; basically I can see the result of
> sending a message to undef to return undef; that will work in most
> situations. In list context, I suppose it should return an empty list.
>
> If this seems like an idea, I can invest some time in putting together a
> reference implementation that could be tried out. Also, if it doesn't seem
> like a good idea to discuss it here, I'l be happy to move this over to
> Perlmonks.

I think this is easily implementable using autobox.

Leon

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