Beginning Perl (Wrox) is now released
I'm quite happy to say that Beginning Perl has now been released. You can buy it on Amazon or a number of other online bookstores, and I'm guessing a few local bookstores, too. There are also a couple of translation deals, too, but they're not finalized, so I'm unsure if I can talk about them.
If you're interested in Perl but worried about the title, the book actually takes you all the way through OO programming and even has introductory sections on Catalyst, DBIx::Class, Plack, and other tools. It's fairly comprehensive.
Congratulations, Ovid!
Thanks Mike. I'm just happy it's over :)
Fantastic, any idea if there will be a Kindle edition?
Ævar, I understand there should be a Kindle edition, but I don't see it out there. I should ask.
Just submitted it for prompt purchasing at $work. Thank you! :)
A very nice book. Thanks Ovid :)
Chankey, thank you :)
If you like the book, it would be lovely if you could post a review on Amazon. That will help others know if they should buy the book or not.
Ovid, really liked the book (actually still going through it), it's nicely written, but there are loads of typos, especially wrt code indentation (?was there a space/tab confusion that running the whole book thru 'expand' could have fixed?).
Most seriously, you've made a serious logical error pp300-306 ("grepping for primes"), where your prime caching is broken. I've submitted an errata report via wrox, but noone's got back to me yet (a week or so later!). Have they passed it onto you yet?
The core of the logical error was:
my @primes = grep { ( exists $isprime{$} and $isprime{$} ) or ( $isprime{$} = isprime($) ) } @numbers;
but that should have been:
my @primes = grep { exists $isprime{$} ? $isprime{$} : ( $isprime{$} = isprime($) ) } @numbers;
your version implements "if it's cached AND PRIME then use the cache else (re)calculate and cache it", whereas mine implements "if it's cached, use it (whether prime or not) else calculate and cache it", which is what you meant. This also explains, btw, why your "inline cache inside is_prime was faster than you expected - it was the first "fully cached" version you wrote:-)
See my errata report for more details.. please feel free to get in touch!
(also had a hard time submitting this anonymously, captcha image link was broken in chromium, absent in firefox). grarrrr..
Duncan, thanks for the report. It looks like I'm going to have to try and write something up to fix that for the errata. Damn!