Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
After reading review of Perl black book, I decided it will be better to post my response as another review - because I want to review another book...;-)

I have companion book (Perl Core Language - Little Black Book = LBB) on my bookshelf and I like author's approach. Author (Steven Holzner), and publisher (Coriolis) did terrific job.

I am experienced programmer, and when I bought LBB, I needed simple perl book to get me up and running and to put my first perl program into production in less than two weeks. I started to read camel book... It is fun to read, and I read it twice since, but not good for what I needed: structured approach, where it's easy to find answer for your fuzzy-formulated question. Three days into my wto-week deadline I wondered into Barnes & Noble bookstore (support your local bookstore!), browsed through perl books, looking for some simple introductory book. I did not found Llama book on the shelf (I guess it was sold out..;-) ), but all these "learn perl quick and easy in X days" books were oriented to complete beginers, which is waste of time for me - and many other programmers I guess. LBB book is different.

LBB is smaller (and narrower) than Camel or full Big Black Book. In 500 pages author crammed description of perl syntax (180 pg), Built-in variables and functions, sorted by area of usage (cca 100 pg), guide to perl programming and data structures, and guide to CGI programming with examples. Each chapter has own overview and own index and has convenient black spot on right side of the page, so everything is really easy to find. It is obvious that author is experienced and pragmatic, and spend quite a time distilling only the most important info from his "Big Black Book" into LBB. In a sense, it is harder to write little book: you need to throw away much of less important stuff, what you already written and you want to get paid for it. I appreciate that author spent time to sort out and presenting only core information.

Indexes are excellent. Every chapter has own two-page indes of topics in this chapter. You can quickly perform "fuzzy drill down search": You approximatelly know what you want to accomplish (using analogy from another programming language you know), so you find a chapter, then you can read brief introduction and/or browse through index you try to guess what part might have info you need right now. Here it is what you need, with example - and nothing else.

Right in first chapter, in first 20 pages (dealing with perl instalation), advises to use -w and explains how it protect from misspelling of variable name. It gave me strong sense that author intention is not to show off how smart language is perl, but to teach me how to build reliable programs quick.

Another nice LBB feature is pull-off one-page sheet with overview of language, operator precedence and many basic common variables. I looked in it often during my first 3 months in perl. I like these little touches - it shows that author wasn't here to get money by writing a lot, but by thinking about presenting important info only, how to spend his time to save my time. I appreciate it.

I remember pure joy when I read Ritchie-Kernighan Big Blue C book - when on your plate is just meat, no fluff. When author knows he is talking to a pro, already knowing the basics and just moves on to more interesting deep details without too much handholding. LBB is like that. When you are dealing with hashes, and faintly remember or guess that there is some difference between non-existing element, and existing element having value of undef - you can just open chapter about hashes, and there it is: browse two-pages index of topics of this chapter only, right here in beginning of the chapter, and you can drill down right into page where is required info.

Another example: I wanted to switch STDOUT buffering out, so perl warning will not be intermixed with my debug print output. Quick browse through standard variables - and I found idiom $| = 1;, called "output autoflush" in perl. I know what buffer flushing is, so it clicked with me, but I would not guess to search for it, I would search for "buffering" - in vain.

So I can recommend LBB to a programmer with at least basic experience in other language looking for a good asociative reference of core perl features, who needs to roll out simple application ASAP. After browsing through cca 100 pages you will know where you can find details of what you fuzzy recall, and you are ready to start your baby perl coding, being aware of -w swith, 'use strict' and taint mode - lightyears ahead of posts of some newbies here...;-)

I also looked into full Big Black book, and I did not liked it as much as LBB. It is still organized very thoughtfully, easy to drill down needed info, but: Is much thicker => not as easy to browse. Camel book is much more fun to read. And by the time you need more info than is in LBB, you might be knowledgeable enough to find relevant info in perldoc, on the web, or in the cookbook. But I myself am more experienced in perl now, I might like it better now...;-)

LBB is not a book for total beginner in programming and it clearly states on back cover. Also, some special details it only touches without going too deep, or suggests without explanation. You will outgrow this book in half a year, you'll go for Camel book. But still, when searching for some basic but obscure feature, this is the book I grab first.

This is book for you, if you

  1. know how to program in some other language,
  2. need to learn basic perl idioms quick before deadline,
  3. need quick reminder how perl implements some core detail.

I realize that most monks here are much more experienced, beyond the point of need of this book: you do not need it. But if you want to help your friend/coworker to get up to speed fast, you may consider give this book as a gift (or guidance).

For monks - newbies not only in perl, but in all programming stuff: this book might be usefull for you as a second book - after reading some "learn perl quick and easy in X days" wonderbook. This is darned good structured reference of core features of perl - after you have some gut feeling what might you look for.

What I would like to improve?

You know feeling when starting to code in new language: you know that language should have function like SUBSTRING, or CONVERT-TO-UPPERCASE, or a way to put list of strings together (join), but you do not remember exact spelling of the function name. Solution? Functions sorted not by name, but by usage. I did it!

When you decide you want to buy this book - please boycott Amazon.

Next time, when I'll be starting with new language, I'll definitely will try to find Little Black Book for this language and start with it. It worked for me with perl just fine.

pmas
To make errors is human. But to make million errors per second, you need a computer.


In reply to Perl Core Language by pmas

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (6)
As of 2024-04-18 15:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found