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