http://qs321.pair.com?node_id=1148366


in reply to Re: "Indirect" object syntax?
in thread "Indirect" object syntax?

I think it's called indirect syntax in contrast to CGI->new being the direct syntax.

/me ponders that...

Possibly.

Though you might read new CGI as calling new from CGI .

This would hold for new SomeClass, mostly because "new" is hardly a verb. It's an adjective, at best. Were new called create (construct, make, whatever) instead, as in $cgi = create CGI then we'd be right back at the kick $ball example. The grammatical object (CGI, SomeClass, $ball, $foo, et cetera) we're dealing with is something that is directly acted upon.

Another example could be save $file, assuming that somehow $file->can('save') . Again, the grammatical object is a direct one.

Contrast that with

move $file "~"; # $file->move("~"), or move a file to one's home dire +ctory, # where $file is the thing being acted upon *directly +* # and "~" is just another grammatical argument to the + verb.