[Omaha.pm] [olug] Bash TCP scripting

Jay Hannah jay at jays.net
Tue Jan 1 06:12:09 PST 2008


On Dec 31, 2007, at 7:24 PM, George Neill wrote:
> OO PERL :)  Just curious ... what was the assignment?

Given a text file, do a case-insensitive word count. Print each word  
and the number of times it appeared in the text file.

The Perl solution I wrote in class while the teacher was explaining  
the assignment:


while (<>) {
    foreach (/([a-zA-Z0-9'-]+)/g) {
       $cnt{lc($_)}++;
    }
}

foreach (sort keys %cnt) {
    print "$_ $cnt{$_}\n";
}


2 weeks later I turned in my 400 lines of C++ (which I can't share or  
the nuns will whack my knuckles with a ruler).

As I mentioned, the C++ solution was a lot more code then just  
solving the problem. In C++ we set up a List object which was a  
"linked list" of Node objects and each Node object contained a Word  
object. Each object has it's own methods, and we set up operator  
overloading to dump objects into ostreams (STDOUT), etc.

$ wc -l *
      10 input.txt
     137 list.cpp
      31 list.h
      28 main.cpp
      22 Makefile
     149 word.cpp
      36 word.h
     413 total

That said, my Perl program kicked out the exact same output and only  
took 15 minutes to write and debug.  :)   My teacher was not  
surprised. Like I mentioned, solving the problem as specified  
apparently wasn't the point. If it were then all CS classes would let  
you turn in a solution in any language you want? (Some upper level  
classes do, apparently?)  IANAE. (I am not an educator. -grin-)

There are many things you would never write in Perl. Embedded  
systems, graphics card drivers, all kinds of low-level stuff. I have  
no interest in ever coding those systems, but I should be better of  
for getting a little C++ under my belt? I am interested in scientific  
programming (bioinformatics), parts of which are insanely  
computational, so I'll probably end up in C land for that stuff one  
of these days...? A typical solution is Perl (or Java) doing all the  
glue, user & system interfacing, and data transformations while  
insanely optimized C programs sit in the back doing TeraFLOPS of hard- 
core processing.

Toodles,

j
loves to watch himself type, apparently  :)


More information about the Omaha-pm mailing list