Rating: Summary: The best CGI book in the store! Review: I'm not sure how they did it, but this book is incredible. It's not often that you find a book that can be used by a beginner and contains such intermediate/advance material. After a few chapters, I was able to finish applications that I had sitting around for months. The practical code and step-by-step explanations are great. The main text and code explanations employ the same concise, easy to understand teaching method. I am very impressed with the speed with which I was able to grasp and implement many new cgi concepts. Especially useful was the sections on using cookies, and the DBI interface. I already have 2 applications using MySQL and Oracle as a result of this book. Some projects that we were planning to implement using java and an expensive proprietary java web server and now being done in cgi, thanks to the sections on cgi.pm, mod_perl and Apache::Registry. Finally, I had plan to use a companion Orielly perl book to bring me up to speed on my perl, but there was little need since the authors did such an excellent job with explaining the perl concepts, code and cgi.
Rating: Summary: Head And Shoulder Above Most CGI Programming Books Review: There are a very large number of Perl CGI books in the shops. Unfortunately the number of good Perl CGI books is far smaller. I'm happy to report that this book is one of them.The problem, of course, with most Perl CGI books is that they are written by people who just don't know very much Perl. That's certainly not the case here. Both Kevin and Brent are well-respected members of the Perl community and they know what they are talking about when it comes to writing CGI programs in Perl. Another common mistake in Perl CGI books is that the authors try to take people who know a bit of HTML and teach them programming, Perl and CGI all at the same time. The authors of this book realise that this approach is likely to lead to, at best, patchy understanding of any of these concepts so they aim there book at people who are already programmers and who have some knowledge of Perl. This means that they can concentrate of teaching the parts of Perl that are useful when writing CGI programs. One corner that is often cut when discussing CGI programming is security. This is a very dangerous approach to take as a badly written CGI program can leave your web server open to attack from anyone on the Internet. That's not a mistake that is made here as the authors introduce security in chapter 2. Add to that the fact that the code examples all use -w, use strict and CGI.pm and the book is already head and shoulders above most of its competition. Early chapters look at common CGI requirements such as file uploads and cookies. Each chapter is full of well written (and well-explained) sample code. The example of an access counter in chapter 6 even locks the file containing the current count - this is possibly a first in a Perl CGI book! By the middle of the book we have already moved beyond simple CGI programming and are looking at mod_perl. This chapter covers both the "faux-CGI" Apache::Registry module and also writing complete mod_perl handlers. In the second half of the book we start to look at some bigger examples. The authors present a web-based email system and even a shopping cart. In order to fit these examples into their respective chapters a couple of corners have been cut, but there's enough information there to enable anyone to write the complete systems. Chapter 13 introduces the HTML::Mason module as a way to separate content from presentation. It's obvious that the author's are big fans of this module and this leads to my only real criticism of the book. At no point do they mention the fact that the same benefits can be gained from using any of half a dozen templating systems found on the CPAN. I would have been a lot happier if they had mentioned things like Text::Template, HTML::Template and the Template Toolkit before picking HTML::Mason as the system for their example. There are then two more long chapters with examples of a document management system and image manipulation software. Once more the code in these examples would serve as a greating starting point for anyone wanting to implement something along these lines. The last chapter looks at XML and, in particular, the use of RSS files to provide data feeds to other web sites. All in all this is a very useful book for someone wanting to write web-based applications using Perl. It's packed full of good advice and code that follows all of the best practices for writing CGI programs in Perl. This book won't teach you Perl, but if you've read Learning Perl or Elements of Programming with Perl then you'll find this book easy enough to follow.
Rating: Summary: Excellent text on the subject Review: This book covered everything that I wanted to learn about doing CGI with Perl. It is well-written and very easy to read. All of the example code is described in a line by line fashion, and it's described well enough that even those with only basic Perl knowledge will understand. It promotes good programming practices, and the authors share many topics and techniques that even those already familiar with CGI will learn from. It's a great book!
Rating: Summary: Endlessly Practical Examples! Review: This book is just great. Clearly written by two authors that have spent some time doing some real work out there in the real world, you'll NEVER find any overly academic examples in here. They just go from one very useful example to another. They teach you how to use CGI programs with MySQL databases, how to process all manner of forms, use dynamic image manipulation via CGI modules, handle file uploading, handle cookies, etc. Plus, the examples they give are all made from the point of view of using CGI in a real-world, website environment. You can take the code they give you and add it in your own programs with no difficulty whatsoever. This is a great book of useful, real-world CGI examples. As long as you already know Perl (you must have a decent familiarity with the language and some scripting background to really use this book well, or else you will get overwhelmed!!!) this is a perfect way to go from theory to practice in just a few easy steps.
Rating: Summary: Very helpful Review: This is an extremely useful book for writing web-based applications with Perl. Lots of helpful descriptions and examples. Useful for beginners to familiarize themselves with a wide range of necessary terms and topics. For example, I found the chapters on mod_perl and dbi very helpful. Also useful for more experienced CGI programmers because of the useful examples and techniques presented.
Rating: Summary: Effective and Unique Review: What a pleasure to find a book that succeeds in what it sets out to do. I wanted to improve my ability to write CGI applications with Perl and came away from this book with mission accomplished. As a bonus, the book contains uses for Perl I suspect many people don't know about. The book uses a variety of methods to make its points--- interactive exercises, cut-and-paste code, extensive documentation, conceptual development, and plain English explanations and descriptions. Each chapter covers a CGI application. Concepts from one section become the foundation for practical, must-know applications covered elsewhere. Information is presented in logical order; chapter 4 doesn't presume you know something covered in chapter 7. Truly valuable is the book's focus on "why it works" as well as the "how to do it." The "why" promotes a grasp of how to use a script or technique in other contexts. If you feel something special about that "oh yea, I get it" feeling, I think this book is for you. I call the book unique because I haven't seen another with the variety of instructional methods, the "building-block" style, or the combination of practical skills with underlying knowledge. In sum, the authors wrote an excellent book that I recommend to any serious Perl programmer or web designer.
Rating: Summary: Finally a CGI book that pays enough attention to security! Review: When I first got this book, I thought "CGI is a much more complex standard than this! For example, what about all the strange things you can do with hidden form variables?" Then in occurred to me that the unifying theme of this book is not "everything you can do with CGI" -- it's "everything you can do with CGI, done SECURELY". All the various CGI tricks I'd known and used that weren't mentioned in this book, were the sort of thing that a beginning programmer might misuse, and thereby accidentally create a way for some malicious user to, for example, delete or corrupt any file on the filesystem, or order any product for [price]. Since /most/ beginning programmers create programs with just those kind of accidental security problems, I'm glad that this book sees security as a primary goal. In other words: they show you how to do anything you need in CGI, but they don't give you enough rope to hang yourself with! The other thing that makes me happy with this book is that it wisely takes the (very realistic) perspective that CGIs are programs that have to do something /besides/ just talking to the Web browser -- they have to access a database, send a piece of mail, read from a config file, write to a log file, or whatever other details the task demands. That's just the way the CGI business is, and this book gives you a nice introduction to that way of programming. I heartily recommend this book for anyone who's starting out doing CGI programming. It assumes you do know some Perl already. If you don't, and you already have a strong programming background in some other language than Perl, can probably just make do with the Perl man pages; but less experienced folks should get /Learning Perl/, or /Elements of Programming with Perl/, or maybe even /Teach Yourself Perl in 24 Hours/ (which has a good CGI section, incidentally). One note: currently this book is in its first printing, so there are, as always, typos. The errata list at perlcgi-book.com was quite helpful.
Rating: Summary: A Great Buy Review: Worth the price for a Beginner to intermediate level
|