At Mon, 23 Aug 2004 15:51:00 -0400,
[EMAIL PROTECTED] (Aaron Sherman) wrote:
> 
> On Mon, 2004-08-23 at 15:19, Paul Seamons wrote:
> > > So, I was wondering about a synonym, like:
> > >
> > >   uses Some::Module::That::Defines::A::Class $foo;
> > 
> > Well if the long name is the problem:
> > 
> > use Some::Module::That::Defines::A::Class as Foo;
> 
> No, like I said: this is not golf. I'm trying to remove an element of
> redundancy that I think obscures the meaning of a set of statements.
> 
> Saying,
> 
>   use reallylongnameforamodulethathassomeclass as Foo;
>   our Foo $bar := .new;
> 
> Still has the same redundancy, it's just been hidden a bit. If
> "use/instantiate" is a common practice for certain kinds of library,
> then I think we should have a mechanism to perform that pair as a single
> step.

How about making "use" a list operator returning the module's return
value (== its last statement?)?  Then you could do something like

    my $x = (use Some::Module::That::Defines::A::Class).new("blah");

This leaves a bad taste in my mouth -- I think importing a module and
instantiating its main class should remain separate -- but this looks
like a painless way to get what you want without a separate function
or keyword.

/s

Reply via email to