in reply to Some missing textutils

Neat stuff! ++! I have to comment on some style though:

Things i don't like (sorry):

  1. hand rolling your own arg processor - not good if you are handing code out to others, use Getopt::Std or Getopt::Long instead.
  2. C style for loops - if i have said it once here i have said it one thousand times: for my $j (0..$maxchar) {} is so much nicer.
Things i did like:
  1. use of Symbol
  2. using readline on a hash ref key to get around the interpreter mixing up angle brackets and the arrow operator (my $one = <$data[0]->{FH}>; doesn't work - i would have gimped out with a temp var)
  3. fully qualifying $a and $b to main in your sort
Thanks!

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
F--F--F--F--F--F--F--F--
(the triplet paradiddle)

Replies are listed 'Best First'.
Re: (jeffa) Re: Some missing textutils
by belg4mit (Prior) on Dec 01, 2001 at 23:35 UTC
    Thanks! I hadn't thought of #2 (things you didn't like). I had a foreach when I was using a hash to store data, but switched to the C-style for when I made the move to an array because, well just because that's the other idiom I'm familiar with. Although, while your suggestion is pretty safe for the chars loop isn't there a larger potential with the lines loop of instantiating a large list? As for #1, I know I know, but at least I didn't go with -s! (I was tempted but especially didn't want to force use of = to pass a value.) That and it's such a simple thing, I most certainly would have used Getopt::* if it was any more complicated; two arguments, arguments with optional values, or arguments with types. Yeah, it actually works without fully qualified $a and $b (had like that for awhile) but figured I'd go for the gusto.

    Thanks again.

    --
    perl -p -e "s/(?:\w);([st])/'\$1/mg"

      "...isn't there a larger potential ... of instantiating a large list?"

      Pardon my being behind the times, but that is definately the case with Perl versions 5.003 and older. In my old copy of Programming Perl Second Ed., there is a footnote on page 90 that mentions burning lots of memory "under the current implementation."

      So maybe you should keep that one iterative. My mistake. :)

      jeffa

      L-LL-L--L-LL-L--L-LL-L--
      -R--R-RR-R--R-RR-R--R-RR
      F--F--F--F--F--F--F--F--
      (the triplet paradiddle)