Hello everyone,

>  1perl -e '$x = My::Very::Long::Module->new( foo => 42 ); print $x->foo'

Good point. And there's also L module https://metacpan.org/pod/L which does
more or less what I propose. So I think this topic is covered. =)

On Tue, Jan 3, 2017 at 11:52 AM, Smylers <smyl...@stripey.com> wrote:

> Konstantin S. Uvarin writes:
>
> > I've come up with idea or a module that shortens (mostly test)
> > one-liners.
> >
> > perl -we 'use My::Very::Long::Module; $x = My::Very::Long::Module->new(
> foo => 42 ); print $x->foo;'
> >
> > perl -Mnew=x=My::Very::Long::Module,foo,42 -we "print $x->foo;"
>
> Have you seen Class::Autouse? You can do:
>
>   perl -MClass::Autouse=:superloader -we '$x =
> My::Very::Long::Module->new( foo => 42 ); print $x->foo'
>
> You still have to type ->new, but don't need to repeat the module name.
>
> > However, I'm still unsure if the fun is worth putting into global
> > namespace, and module name HAS to be short, otherwise it kills the
> > idea.
>
> It only has to be short if you expect it to be typed by hand. I have
> ~/bin/1perl defined as:
>
>   #! /bin/sh
>   perl -w -MClass::Autouse=:superloader "$@"
>
> Then for a one-liner where I want classes to load themselves, I use
> 1perl (which I can type as 1 Tab) rather than perl:
>
>   1perl -e '$x = My::Very::Long::Module->new( foo => 42 ); print $x->foo'
>
> Could you do something similar? That is, give your module a meaningful —
> and therefore longer — name, and include in your distribution a script
> which uses it (similarly to how the Image::Size module comes with the
> imgsize program). Then when you want a quick one-liner that creates
> objects like this, use that script in place of perl.
>
> Smylers
> --
> http://twitter.com/Smylers2
>



-- 
Konstantin S. Uvarin
jabber: see <from>
skype: kuvarin
http://github.com/dallaylaen

Reply via email to