Eric Wilhelm writes:

>   use My::Really::Long::Module::Name;
>   my $obj = My::Really::Long::Module::Name->new();
> 
> ... is just _almost_ tedious enough to warrant copy/paste, but  not 
> quite.

A decent editor should provide some sort of completion facility on
previously typed terms, so that you don't have to retype them.

For example in Vim having first typed:

  use My::Really::Long::Module::Name;

you can then type:

  my $obj = M

Pressing Ctrl+P ("P" for "previous"; you can guess what the keystroke
for "next" is) completes this, incorrectly, to:

  my $obj = Module

But simply keep Ctrl pressed and tap P a second time and you get:

  my $obj = My

And from there press Ctrl+X Ctrl+P to type the word following the one
you've just completed, giving:

  my $obj = My::Really

Do that a few more times and you've got the whole name:

  my $obj = My::Really::Long::Module::Name

That sounds tedious when written down like this, but basically it just
involves holding down Ctrl and pressing P and X a few times.

I believe that Emacs has an equivalent feature, and I'm sure I've seen
some kind of tooltip completion feature on a gui Windows editor.

Picking a decent editor and learning how to use it well is far better
than trying to use unnaturally short identifiers throughout your code!

> That said, I would much rather see all file-format parsing/writing 
> modules go under FileFormat:: than Parse::.

But why group them under either?  Why group them at all?

> IMO, a distribution shouldn't have to break out of a single root.
> Starting with Parse, Info, ... means you're stuck (maybe just stuck
> looking silly, but still stuck.)

That's along the same lines of why I'd prefer CAD::, Graphics::,
Video::, and whatever -- cos those are the sorts of modules that work
together (even if only some of them are to do with file-types), rather
than all the modules dealing with file-types.

Smylers
-- 
May God bless us with enough foolishness to believe that we can make a
difference in this world, so that we can do what others claim cannot be done.

Reply via email to