Aside from the typical methods I used to pick up other languages (trial and error, practicing with sample projects, banging my head against the desk), the two most helpful resources I found were the book Modern Perl (<a href="http://modernperlbooks.com/books/modern_perl/chapter_00.html)and" rel="nofollow">http://modernperlbooks.com/books/modern_perl/chapter_00.html...</a> a site I stumbled upon titled "Learn Perl in about 2 and a half hours" (<a href="http://qntm.org/files/perl/perl.html" rel="nofollow">http://qntm.org/files/perl/perl.html</a>).
From the perl man page (back when it was all one page)<p>When I was a student I took an internship at a small software company in the English countryside.<p>I was given the task of fixing 100 or so Oracle Forms (version 3, still based on green screen technology). A field in the database was being resized from 1 to 2 characters, and I had to fix the display layouts and any related variable declarations in the code.<p>The Oracle forms editor had a terrible UI, I had to navigate around the form and drill down in each block or UI element to see the related code. There's wasn't much of a search facility. After a bit I decided there had to be a better way.<p>I started by grepping the forms files, to see where the code was referenced. This helped, but didn't tell me where in the form the code was, so I still had to navigate around the form looking for the places it was used.<p>I'm not sure why I picked up on perl, but I printed out 90-odd pages from man, spent some time reading through, and came up with a script that did a high-level parse of all the form files and told me which forms and code blocks contained references to the field.<p>The other developers thought that this task would keep the intern distracted for a few weeks, but I finished within a few days.<p>So they game me another pile of more complex changes to do. Sigh...<p>Other than that the Camel book is good, and the perl Cookbook.
I learned shell scripting mostly from... actually using the shell as the mothership of mostly any activity I undertake on my machines, be it at work or at home.<p>The experience you gain by trying not to repeat yourself carries over into scripting, especially if you already know regular imperative programming constructs: you can then just look up how a specific construct is implemented in your shell of choice.<p>I daily (or maybe hourly) use flow control constructs inline in shell commands, making heavy use of I/O redirection, exit statuses, etc. I've been doing this for over ten years now and I'm still progressing, finding more efficient ways of doing things (currently trying to make a habit of using ZSH's advanced globbing capabilities).<p>If you run a barebones keyboard-oriented desktop environment / window manager (I use wmii) it becomes very attractive to not have to take your fingers off the keyboard; each little efficiency increment is its own reward. But it's the slow path.<p>But you asked for links, books and blogs, not my personal experience ;-)<p>This blog is has some OK articles on Perl/Shell:<p><a href="http://www.catonmat.net/blog/" rel="nofollow">http://www.catonmat.net/blog/</a>
The book that really helped me out the most with Perl was "Effective Perl Programming" (aka "Silver Ball" due to the original cover). Here's a link: <a href="http://www.amazon.com/Effective-Perl-Programming-Idiomatic-Development/dp/0321496949" rel="nofollow">http://www.amazon.com/Effective-Perl-Programming-Idiomatic-D...</a><p>The thing I liked most about that book was that it really helped me get a grasp on Perl idioms and start writing decent, readable Perl code. The thing you'll find out quickly about Perl is that it can be much easier to write than it is to read. I've written more than my fair share of Perl code which I've let rot for a while, tried coming back and reading and been left scratching my head.
FYI, Perl not PERL.<p>Perl -> Programming Perl & Perl Cookbook. Unsure how relevant these still are as "Modern Perl" is the big paradigm now.<p>Shell -> UNIX Shell Programming by Stephen Kochan. I got around in shell before this, but his book make me effective and competent.
I cant speak for Perl but when it comes to bash/shell scripting, I've got a few links for you :)<p>First have look at the Linux Document Project (<a href="http://www.tldp.org/guides.html" rel="nofollow">http://www.tldp.org/guides.html</a>), the Bash Guides are really good, thats how I first got started. Also, for bash once you've gone through the guides, download the source (apt-get source bash if your own a debian based distro) and checkout the test suite, this will give you a good look at the internals.<p>Also be sure to memorize the ins and outs of the the man command :)<p>Best of luck
I learned Perl initially for sysadmin'ing from Minimal Perl (<a href="http://www.amazon.com/Minimal-Perl-Unix-Linux-People/dp/1932394508" rel="nofollow">http://www.amazon.com/Minimal-Perl-Unix-Linux-People/dp/1932...</a>). It teach a subset of Perl necessary to use it as a more powerful replacement for awk/sed/grep/find, primarily with one-liners. By far the best bang/buck of any programming book I've ever read.
I learned perl from the camel and llama books, but I think there are probably better resources these days.<p>I don't remember when I first started learning bash... I found some gems in the Advanced Bash Scripting guide (<a href="http://www.tldp.org/LDP/abs/html/" rel="nofollow">http://www.tldp.org/LDP/abs/html/</a>) but that's probably not the place to start (and I've recently heard some criticism of it).