Syracuse University
It is particularly good at manipulating ASCII text files. Here's an example: suppose you had an ASCII dataset from some survey and each line looked like this:
1982 F 45 16 ...... | | | | | | | | | +- Other information | | | +----- Number of children | | +-------- Age of respondent | +----------- Sex of respondent +-------------- Year of observationIf you wanted to know the average number of children for men and women over 30 in 1982 you could use a perl program like this:
while( <> ) # go through all line in file { next unless /^1982/; # gets rid of other years ($yr,$sex,$age,$kids) = split; # break up the line into pieces next unless $age > 30; # skip younger people $parents{$sex}++; # Add one to parent tally by sex $totkids{$sex} += $kids # Add kids to total by parent sex } $avg_dads = $totkids{"M"}/$parents{"M"}; # figure out average for M $avg_moms = $totkids{"F"}/$parents{"F"}; # figure out average for F print "Average for moms: $avg_moms\n"; print "Average for dads: $avg_dads\n";<You would put this program in file, say "countem.p", and then execute it like so:
perl countem.p data_set_name_hereOk, this example is contrived and the program seems very arcane with all those $'s. Also, perl certainly isn't a substitute for more sophisticated statistical packages.
However, notice the benefits of using perl: (1) the dataset need not be converted to SAS, TSP or any other format; (2) it would be easy to change the cutoff age or other details (find average age of people with more than 2 kids, etc.); (3) there are none of the number/character/formatting/initialization hassles there would be if you tried to use an ordinary programming language like C or Fortran. c Perl is also very good for managing files and other things that statistical packages can't do at all and that programming languages can do, but only with a lot more work.
There is an excellent book available which explains all about perl: "Programming Perl" by Larry Wall (the author of perl) and someone else. It is published by O'Reilly and Associates and is carried by the Co-op in their computer trade section. The manual page ("man perl") is comprehensive but less convenient.
Perl is also available for PCs and most other platforms.