Site Feed

Tuesday, December 2, 2008

Comic - Huge Software Sale

Huge Software Sale

We can't have all work and no play, so a cartoon every once in a while doesn't hurt. While you're having fun, check out

Here are some articles on where to find free software:



Now, some people may not understand that by free, we mean free. Not pirated, illegally copied, or borrowed. Open source software is free to use, copy, modify and distribute.

A small to medium-sized company may have 100 computers, and have to pay $200 for some kind of office software for each machine for a total of $20,000. But if the company chooses to use free software such as openoffice, the price would be $0.00 x 100 = $0.00.

Freedom Fry — "Happy birthday to GNU"

Mr. Stephen Fry introduces you to free software, and reminds you of a very special birthday.

Freedom Fry — "Happy birthday to GNU"

Published on:

Monday, December 1, 2008

Using the Perl Debugger Interactively

Sometimes you might want to test a few ideas to implement into a perl script, but you want to see if it will work before you implement it. The Perl debugger is perfect for that.

What is the Perl Debugger?

Here is an intro from man perldebug :

If you invoke Perl with the -d switch, your script runs under the Perl source debugger. This works like an interactive Perl environment, prompting for debugger commands that let you examine source code, set breakpoints, get stack backtraces, change the values of variables, etc. This is so convenient that you often fire up the debugger all by itself just to test out Perl constructs interactively to see what they do.

For example: $ perl -d -e 42

Using the Perl Debugger Interactively

To invoke the perl debugger, simply use the -d option, and give it any name, such as "1", in this example. Instead of specifying "-e 1", you could specify a filename to have perl debug the file.

In this case, we want to use the debugger interactively, so we type:

perl -d -e 1

Loading DB routines from version 1.28
Editor support available.

Enter h or `h h' for help, or `perldoc perldebug' for more help.

main::(-e:1): 1

DB<1> print hello

DB<2> print "hello";


Notice that the correct syntax for print is to use quotes, and terminate with a semicolon ";". The debugger is a quick way to verify simple constructs.

DB<4> test=123
Can't modify constant item in scalar assignment at (eval 14)[C:/Perl/lib/] line 2, at EOF

DB<5> $test=123

DB<6> print $test;


Notice that a scalar requires the dollar sign "$" character for both assignment and calling the variable. This is different for shell scripts, where assignment requires no dollar sign, and invocation requires it. Here in the perl debugger, it is easy to test simple operations.

Notice also that this works on any OS where perl is installed. I run this on Windows and linux.

Here it is on RHEL 5:

-bash-3.2$ perl -d -e 1

Loading DB routines from version 1.28
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(-e:1): 1

DB<1> print "hello";
print "hello";


So, have fun with the debugger. Of course, as is common in perl, there is more than one way to do things. You can combine options

perl -de 1

And, of course there is always the perl one-liner:

-bash-3.2$ perl -e 'print "hello\n";'