in reply to Re: Re: indirect object in camel book
in thread indirect object in camel book

I don't see your point. Saying new CGI:: is exactly the same in meaning to CGI->new. That is, you are telling Perl to look at a package named CGI and find the new function using virtual lookup rules.

Using the ::, the point of my post, makes this syntax unambiguous.

  • Comment on Re: Re: Re: indirect object in camel book

Replies are listed 'Best First'.
Re: Re: Re: Re: indirect object in camel book
by dragonchild (Archbishop) on Oct 08, 2001 at 20:21 UTC
    Yes, new CGI:: is the exact same as CGI->new, in terms of the interpreter.

    However, how do you explain to someone that every single method call you make uses the '->' syntax ... except for the constructor, which doesn't, but instead starts using this (seemingly) random '::' syntax. This isn't the most maintainable concept. What happens if you forget to put the second ':'? The difference between ':' and ';' isn't entirely obvious to a casual glance. In addition, as ':' and ';' are on the same key, mistyping problems are multiplied.

    Essentially, what this boils down to is "Wow, that's a neat way of doing things. I didn't know I could do that. But, why on earth would I want to obfuscate my production code?"

    ------
    We are the carpenters and bricklayers of the Information Age.

    Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

      I guess it's different if you are used to using "indirect object" notation for Class Methods. Not just constructors, but all of them.