Thanks David.
Got another question that I have been trying to wrap my mind around. About
@argv. Now it says from I understand and read it access information from the
command prompt. How exactly does it work? Is it it's own database? Or am I
mistake, I know this may be a crazy question to ask.
Jason H. Owens
- Forwarded Message
From: David Christensen dpchr...@holgerdanske.com
To: Slick jho251...@yahoo.com
Cc: beginners@perl.org
Sent: Tue, October 6, 2009 11:01:08 PM
Subject: Re: yet another question
Slick wrote:
What do you guys do to practice? Do you practice one script over and over
again? Do you read differnt scripts and figure out what is happening in each
one? Do you think of ideas to do things, then make the script for that?
As they say:
Necessity is the mother of invention.
I write Perl scripts because I need to get something done with my computers.
Monotonous, repetitive tasks are good candidates. For example, copying file
trees to a backup drive, making a tar / gzip archive of some files with a date/
time stamp in the archive name, and shutting down a network of computers in the
proper order. In fact, I've written and re-written those scripts dozens of
times (as my needs change/ expectations increase and as I learn more about
Perl). I then write one script to rule them all, so at the end of the day I
can launch one script, turn off the monitor, and go to bed. :-)
The steps are:
1. Get an idea -- e.g. Hey, I bet I could write a Perl script to do this...
(need).
2. Research in exact detail what it takes to make this happen -- e.g. data,
algorithms, sequence of steps, command syntax, reference information, etc.
(analysis).
3. Figure out how to accomplish this in Perl (design and implementation):
a. One approach is to break down the overall process into smaller steps
and solve them one at a time (procedural or structured programming). This is
the traditional approach, and how I learned to program.
b. Another approach is to model the system as objects that contain both
data and the operations that act upon that data (object-oriented programming).
This is a newer approach, and makes it easier to solve larger and more complex
problems.
I prefer books for learning and for reference, and found Learning Perl,
Programming Perl, and especially The Perl Cookbook to be invaluable when it
came time to start writing Perl code. I still refer to the later two often.
When you're ready for libraries (modules), object-oriented Perl, automated
testing, etc., get Intermediate Perl.
Another aspect to #3 is learning to leverage all the free Perl scripts and
modules that are available on the Comprehensive Perl Archive Network:
http://www.cpan.org/
Data::Dumper is one such module. It is included in the base Perl distribution,
so you don't have to worry about downloading/ installing it. I find it
invaluable for debugging (the old-fashioned way, with print statements):
2009-10-06 20:56:25 dpchr...@p43400e ~
$ cat foo
#! /usr/bin/perl -w
use strict;
use warnings;
use Data::Dumper;
my $debug = 1;
print join( , __FILE__, __LINE__,
Data::Dumper-Dump([...@argv], [qw(*ARGV)])
) if $debug;
2009-10-06 20:56:29 dpchr...@p43400e ~
$ ./foo -x -y 'hello, world!' 123
./foo 8 @ARGV = (
'-x',
'-y',
'hello, world!',
'123'
);
HTH,
David
-- To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/