Re: A funny module that shortens one-liners - is it worth global namespace?

[email protected] (Smylers)
Newsgroups perl.module-authors
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.