OMRF-ISG Archives

OMRF's Information Support Group


Options: Use Classic View

Use Proportional Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Jeff Holmes <[log in to unmask]>
Fri, 21 Mar 2003 10:53:43 -0600
text/plain (225 lines)
        I would be greatly interested. I deal with a few collaborators on my
project who are Perl programmers and I need to do occasional parsing of data
for database transactions.



Jeff Holmes
Systems Programmer
C elegans Gene Knockout Project
Oklahoma Medical Research Foundation

-----Original Message-----
From: Alan Shields [mailto:[log in to unmask]]
Sent: Thursday, March 20, 2003 10:30 PM
To: [log in to unmask]
Subject: Perl

I tendered a possible offer after some people said they would be interested.
After speaking with my PI, I've decided to definitely do this. What is it
that I've definitely decided to do? Well....

Please forward to whomever might be interested. If you have any questions,
email me at [log in to unmask]

To anyone in the OMRF who is interested:

Alan Shields will be offering a course on Perl programming for fun and
If you want to learn Perl, please let me know if you are interested.

For those of you who do not know, Perl is a scripting language with many
capabilities. It is designed, in the words of its creator, to "make easy
things easy, and hard things possible."

Perl is incredibly powerful. Some of the things it is commonly used for:

- Text processing
        Ever needed to change text around? Just last week we got an excel
sheet from
        a client who needed all the negative numbers converted to 0s. I
don't know a
        thing about Excel macros, but Perl was able to do all of that in 16
        *characters* of code. No, I'm not kidding.
- Web page processing
        There was a database online that was only accessible from a web
form. We had
        to look up about 300 items on the database in an organized manner
and cull
        the information we didn't need and reformat the information we did
need, and
        eliminate duplicate results. One day later I had something up and
        running just fine - and that was with me trying several different
        and learning 4 libraries. Result: 200 lines of quite readable code.
- Simple mathematical processing
        Have an algorithm you need to run to find the best choice for
something? I
        had to figure out the optimal number of steps to take for a backup
server to
        allow for sufficient expansion in the future and take into account
        financial situations. Brute force algorithm that would've taken
quite a while
        to run by hand. 80 lines of script later, I had an optimal solution
- Systems administration
        Need to copy files hither and yon and interact with programs in a
        manner? Perl can do everything you can do on a command line easily,
        can call all of the Windows API, any C library. Quickly. Easily.
- Web applications
        While not as easy as PHP or ASP, Perl can do quite a bit - arguably
        I participated for more than a year as a developer of Bugzilla - a
very large
        bug tracking program entirely written in Perl.
- Database interaction
        Need a quick script to modify many entries in a database? Perl has
        excellent database abstraction layer, and you get all the other
        of Perl

And it's fast. Perl is very, very fast. Processing thousands of lines of
in a second is not uncommon.

It's cross-platform: unless it's poorly written or written specifically for
one task (such as it makes Win32 API calls), Perl will work on Windows, Mac,
Linux, FreeBSD, QNX, Amiga, BeOS, etc, etc, etc.

It's free. Anyone can download the runtime for Perl for free for any
In fact, it's Free - you can even give the runtime (which is all people need
to write and run code) to other people without violating copyright laws*.
Isn't that a nice change?

There is a huge library of code already out there. More than 4,500 libraries
centrally available and downloadable for free with source code. One of my
friends's common lament is that he used to have so many neat programming
projects until he got started on Perl...and everything he wanted to do was
already done. If that sounds like the kind of dissapointment you're prepared
to handle, definitely attend these meetings.

Alright, I've finished talking about what Perl is. Now let's talk about how
and when I'll be teaching it, and what I'll cover. Oh, and who my target
audience is.

First, let's cover the target audience bit:

This first set of lessons will be laying the groundwork for other people to
learn Perl. I don't think any of us have the time to be THE repository for
all knowledge Perlish for the OMRF - I know I certainly don't. Therefore, I
will be teaching these people both to help them, and also in the hopes that
some of these prospective students will be willing to help teach and support
others in the OMRF.

Therefore, I would prefer people who have some programming experience. Here
a good litmus test for whether or not you should wait for the next series
(don't worry, it won't be too long!)

Do you know about...
- variables
- functions
- order of operations

If you do, then sign up. If you don' might get a bit lost and
frustrated. Wait until we get the support infrastructure in place for you,
and everything will work better. You'll be happier, and I'll be happier.

Now, don't worry: I'm not going to be blowing through this as fast as
possible. Like I said, I want people to be able to help later. Therefore, my
goal is to produce people who know the basics, know a bit of the advanced
stuff, and know where to go to find out more. The latter bit of the class
will be focused on specific topics that you can immediately put to use.

I will be teaching in a short lecture and socratic style. Participation will
help you a bunch...Perl isn't just something you can read about and listen
and expect to immediately use.

I expect the first try here to be full of mistakes and rabbit trails - a
spirit of adventure and the willingness to let me be totally and abysmally
wrong will definitely be a plus from my perspective.

Now that I've patronized a bit (I don't know to whom this email will be
going!), let me say that I've met several people interested in this topic,
and I have respect for your abilities. I'm sure everything will work out
great. This will be a teaching-amongst-equals.

As to what I'll be covering, this is my proposed outline:

- syntax of perl
- philosophy of perl (short)
- regular expressions
- functions and classes
- packages and namespaces
- CPAN (or "big huge freaking mondo pile of useful and free packages")
- LWP (or "Perl's connection to the internet")
- DBI (the database toolkit)
- POD (a way to document your code easily)
- a few topics-by-request

That's in no particular order, but the first few will be done first.

During and after the course, I will try to maintain a mailing list for
Perl-specific help and peer review. If people are interested, I can also
include them in my occaisional Perl Challenges, which are usually in the
easy-to-medium difficulty range, and are mostly just to keep your skills
sharp. They usually require no more than 30 minutes of work for the basic
solution. If that.

Ok, if you're still reading, the big question in your mind is probably

Soon. As soon as I get enough people together. I'd prefer to start next week
or the week after. As I'm making up the coursework as we go along (guided by
where we want to go and my knowledge of Perl), there's no reason for me to
wait a long time. I would prefer to hold the classes from 5p to 6p on Mon,
Tue, Wed, or Thur. If people would prefer, we could start at 4:30p, instead.
I'd prefer not to conflict with the ISG meeting at 4p on the 3rd Thursday of
the month.

If those times are not acceptable, then I MAY be willing to do a
on a day in Mon-Fri. I'd really prefer not to do this. You don't want to see
me eat, besides, and I can hardly talk when I can smell everyone's lunch.

So, if you're interested, email me at [log in to unmask] Give me
times when you'll be available, a preferred time and date, and anything
special you'd like me to cover.

If you would like a good reference book on what we'll be covering, the
O'Reilly book "Programming Perl" 3rd edition (I believe that's the latest
edition) is quite good. Todd liked Learning Perl, and you may find that
useful to follow along in some sections. I won't be teaching from it,
however. Online resources such as will be very useful for
nicely-formatted information on CPAN and other such libraries.

If you like this course, you may also like the short course I will be doing
later (if there is interest) in modern development practices. I will be
covering CVS, bug reporting, test cases, diff/patch, and perhaps extreme
programming. Something for everyone.

Finally, if you're interested in my bona fides, I have 3 years of Perl
experience, from commodity programming, to systems administration, to
database work, to web development. I have a bit of experience with Windows
administration in Perl, but I'll be the first to admit that it isn't my
strong suit. I'm a bit rusty in one or two areas, but I'll brush up on them
before we get to them.

Good luck, and if you're interested, I hope to see you there.
Alan Shields