undef would do the same thing -- although, generally, you want to declare a variable if you ever decide to use the script in strict mode.
.= is the same as $variable = $variable . "stringtoadd";
I've gotten to the point where I really rarely use inline substitution because there are times that it doesn't work the way I would expect, so, a lot of times you'll see something like:
$html = '<a href="' . $sql->{url} .'">' . $sql->{title} . '</a>';
the same thing could be accomplished with sprintf
$html = sprintf('<a href="%s">%s</a>',$sql->{url},$sql->{title});
With perl, there are dozens of ways to accomplish the same thing. Oddly, that doesn't simplify things.
As for books, I work best from reference rather than tutorial books. I would suspect that one of the O'Reilly zoo books would be worth a look through at a bookstore. You really want to thumb through about 10 different books on perl to find one that has a writing style you like. Advising programming books is quite difficult.
