47 of 49 people found the following review helpful:
5.0 out of 5 stars
A toolbox and tutorial for the working Perl programmer, May 19, 2006
This review is from: Perl Hacks: Tips & Tools for Programming, Debugging, and Surviving (Paperback)
This book is for experienced working Perl programmers - most likely system administrators but not necessarily - that need working solutions to real problems you'll most likely find in the workplace. There are a few diversions into such "cute" ideas as building animations in Perl, but most of these hacks are for the working programmer who is looking for ways to automate processes, build interfaces that don't get in the way of developers, and thoroughly test and simulate code. Amazon does not show the table of contents so I review this book in the context of the table of contents.
Chapter 1, Productivity Hacks
The hacks in this chapter are about relentless automation - saving time and effort. They allow you to find the information you want, automate repeated tasks, and find ways not to have to think about things that you do all the time.
Chapter 2, User Interaction
Menus, graphics, beeps, and command lines: these are all ways your programs grab user attention. This chapter is about keeping your users happy and even making your interfaces "pretty" with Perl. People may not notice when your code stays out of their way, but you know by their grimaces when it becomes an obstacle. My favorite hack in this chapter was Hack #16 "Interactive Graphical Apps". This uses sdlperl, which is a binding of the C low-level graphical library SDL for the Perl language. The hack is a short example program animating a colored rectangle and its fading tail. It first creates the needed series of surfaces, with a fading color and transparency, then animates sprites along a periodic path. It is a good example of using a GUI in PERL.
Chapter 3, Data Munging
Perl exists to extract, reformat, and report data. This chapter is about novel ways to connect to data and databases that are not "kludgy". For example, Hack #21 is "Use Any Spreadsheet As a Data Source". In it you use the Spreadsheet::Read module to give you a single interface to the data of most spreadsheet formats available, hiding all the troublesome work that deals with the parsers and portability, yet being flexible enough to get to the guts of the spreadsheet.
In Hack #20, "Read Files Backwards" suppose you have a server process that continually writes its status to a file. You only care about its current status, not its historical data. If its status is up, everyone is happy. If its status is down, you need to panic and notify everyone, thus you need to read the log file backwards and this hack shows you how.
Chapter 4, Working with Modules
Perl 5's greatest invention is the concept of the module - a unit of reusable code.
If you're doing any serious work with Perl, you'll spend a lot of time working with modules: installing them, upgrading them, loading them, working around weird and unhelpful features, and even distributing them. It makes a lot of sense to understand how Perl and modules interact and how to work with them effectively.
Chapter 5, Object Hacks
Abstraction, encapsulation, and genericity are the keys to designing large, maintainable systems. Some people claim that Perl doesn't really do OO, but they're wrong and these hacks demonstrate that by building some powerful abstractions.
Chapter 6, Debugging
Someday you'll have to dig through a pile of Perl left by an obnoxious coworker. This chapter prepares you for the worst with a toolkit full of tips and techniques to disarm the weirdest code you can imagine.
Chapter 7, Developer Tricks
Maintaining a program is different from maintaining an entire system. This is doubly true if you work with other people. If anything, discipline and consistency are more important than ever. This chapter is all about testing code, working with benchmarks, and even simulating hostile environments.
Chapter 8, Know Thy Code
If you really want to take advantage of the deeper mysteries of Perl, you have to be able to look deeply into the language, the libraries, and the interpreter itself--as well as your own code--and understand what's happening.
Chapter 9, Expand Your Perl Foo
This chapter explores a few of the odder ideas in the world of Perl. Then you'll be ready to discover your own. The explicit list of hacks is as follows:
Chapter 1. Productivity Hacks
Hack 1. Add CPAN Shortcuts to Firefox
Hack 2. Put Perldoc to Work
Hack 3. Browse Perl Docs Online
Hack 4. Make the Most of Shell Aliases
Hack 5. Autocomplete Perl Identifiers in Vim
Hack 6. Use the Best Emacs Mode for Perl
Hack 7. Enforce Local Style
Hack 8. Don't Save Bad Perl
Hack 9. Automate Checkin Code Reviews
Hack 10. Run Tests from Within Vim
Hack 11. Run Perl from Emacs
Chapter 2. User Interaction
Hack 12. Use $EDITOR As Your UI
Hack 13. Interact Correctly on the Command Line
Hack 14. Simplify Your Terminal Interactions
Hack 15. Alert Your Mac
Hack 16. Interactive Graphical Apps
Hack 17. Collect Configuration Information
Hack 18. Rewrite the Web
Chapter 3. Data Munging
Hack 19. Treat a File As an Array
Hack 20. Read Files Backwards
Hack 21. Use Any Spreadsheet As a Data Source
Hack 22. Factor Out Database Code
Hack 23. Build a SQL Library
Hack 24. Query Databases Dynamically Without SQL
Hack 25. Bind Database Columns
Hack 26. Iterate and Generate Expensive Data
Hack 27. Pull Multiple Values from an Iterator
Chapter 4. Working with Modules
Hack 28. Shorten Long Class Names
Hack 29. Manage Module Paths
Hack 30. Reload Modified Modules
Hack 31. Create Personal Module Bundles
Hack 32. Manage Module Installations
Hack 33. Presolve Module Paths
Hack 34. Create a Standard Module Toolkit
Hack 35. Write Demos from Tutorials
Hack 36. Replace Bad Code from the Outside
Hack 37. Drink to the CPAN
Hack 38. Improve Exceptional Conditions
Hack 39. Search CPAN Modules Locally
Hack 40. Package Standalone Perl Applications
Hack 41. Create Your Own Lexical Warnings
Hack 42. Find and Report Module Bugs
Chapter 5. Object Hacks
Hack 43. Turn Your Objects Inside Out
Hack 44. Serialize Objects (Mostly) for Free
Hack 45. Add Information with Attributes
Hack 46. Make Methods Really Private
Hack 47. Autodeclare Method Arguments
Hack 48. Control Access to Remote Objects
Hack 49. Make Your Objects Truly Polymorphic
Hack 50. Autogenerate Your Accessors
Chapter 6. Debugging
Hack 51. Find Compilation Errors Fast
Hack 52. Make Invisible Characters Apparent
Hack 53. Debug with Test Cases
Hack 54. Debug with Comments
Hack 55. Show Source Code on Errors
Hack 56. Deparse Anonymous Functions
Hack 57. Name Your Anonymous Subroutines
Hack 58. Find a Subroutine's Source
Hack 59. Customize the Debugger
Chapter 7. Developer Tricks
Hack 60. Rebuild Your Distributions
Hack 61. Test with Specifications
Hack 62. Segregate Developer and User Tests
Hack 63. Run Tests Automatically
Hack 64. See Test Failure Diagnostics -- in Color!
Hack 65. Test Live Code
Hack 66. Cheat on Benchmarks
Hack 67. Build Your Own Perl
Hack 68. Run Test Suites Persistently
Hack 69. Simulate Hostile Environments in Your Tests
Chapter 8. Know Thy Code
Hack 70. Understand What Happens When
Hack 71. Inspect Your Data Structures
Hack 72. Find Functions Safely
Hack 73. Know What's Core and When
Hack 74. Trace All Used Modules
Hack 75. Find All Symbols in a Package
Hack 76. Peek Inside Closures
Hack 77. Find All Global Variables
Hack 78. Introspect Your Subroutines
Hack 79. Find Imported Functions
Hack 80. Profile Your Program Size
Hack 81. Reuse Perl Processes
Hack 82. Trace Your Ops
Hack 83. Write Your Own Warnings
Chapter 9. Expand Your Perl Foo
Hack 84. Double Your Data with Dualvars
Hack 85. Replace Soft References with Real Ones
Hack 86. Optimize Away the Annoying Stuff
Hack 87. Lock Down Your Hashes
Hack 88. Clean Up at the End of a Scope
Hack 89. Invoke Functions in Odd Ways
Hack 90. Glob Those Sequences
Hack 91. Write Less Error-Checking Code
Hack 92. Return Smarter Values
Hack 93. Return Active Values
Hack 94. Add Your Own Perl Syntax
Hack 95. Modify Semantics with a Source Filter
Hack 96. Use Shared Libraries Without XS
Hack 97. Run Two Services on a Single TCP Port
Hack 98. Improve Your Dispatch Tables
Hack 99. Track Your Approximations
Hack 100. Overload Your Operators
Hack 101. Learn from Obfuscations
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
13 of 13 people found the following review helpful:
5.0 out of 5 stars
Excellent Compendium of Perl Tricks, November 21, 2006
This review is from: Perl Hacks: Tips & Tools for Programming, Debugging, and Surviving (Paperback)
To be completely honest, this isn't the book I thought it was going to be. Most O'Reilly Hacks books start off pretty simply and in a few chapters take you to the further reaches of their subject area. Whilst this is a great way to quickly get a good taste of a particular topic, it has the occasional disadvantage that for subjects that you know well, the first couple of chapters can seem a bit basic. As I know Perl pretty well, I thought I would be on familiar ground for at least half of the book.
I was wrong.
Oh, it started off easily enough. Making use of various browser and command line tools to get easy access to Perl documentation, creating some useful shell aliases to cut down typing for your most common tasks. "Oh yes", I thought smugly to myself, "I know all that". But by about Hack 5 I was reading about little tweaks that I didn't know about. I'd start a hack thinking that I knew everything that the authors were going to cover and end up frustrated that I was on the tube and couldn't immediately try out the new trick I had just learnt.
It's really that kind of book. Pretty much everyone who reads it will pick up something that will it easier for them to get their job done (well, assuming that their job involves writing Perl code!) And, of course, looking at the list of authors, that's only to be expected. The three authors listed on the cover are three of the Perl communities most respected members. And the list of other contributers reads like a who's who of people who are doing interesting things with Perl - people whose use.perl journals are always interesting or whose posts on Perl Monks are worth reading before other people's. Luckily, it turns out that all these excellent programmers can also explain what they are doing (and why they are doing it) very clearly.
Like all books in the Hacks series, it's a little bitty. The hacks are organised into nine broad chapters, but the connections between hacks in the same chapter can sometimes be a bit hard to see. But I enjoyed that. In places it made the book a bit of a rollercoaster ride. You're never quite sure what is coming next, but you know it's going to be fun.
In fact, the more I think about it, the more apt the fairground analogy seems. When you ask Perl programmers what they like about Perl, you'll often hear "fun" mentioned near the top of the list. People use Perl because they enjoy it. And the authors' enjoyment of Perl really comes through in the book. It's obvious that they really wanted to show people the things that they thought were really cool.
Although I did learn useful tips from the earlier part of the book, it was really the last three chapters that were the most useful for me. Chapter 7, Developer Tricks, had a lot of useful things to say about testing, Chapter 8, Know Thy Code, contains a lot of information on using Perl to examine your Perl code and Chapter 9, Expand Your Perl Foo was a grab-bag of obscure (but still useful) Perl tricks.
So where does this book fit in to O'Reilly's Perl canon? I can't recommend it for beginners. But if you're a working Perl programmer with a couple of years' experience then I'd be very surprised if you didn't pick up something that will be useful to you. And don't worry about it overlapping with other books in your Perl library - offhand I can't think of anything in the book that has been covered in any previous Perl book.
All in all, this would make a very useful addition to your Perl library.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No