Advanced Perl Programming. 2nd Edition - Helion
ISBN: 978-14-493-7891-2
stron: 300, Format: ebook
Data wydania: 2005-06-28
Księgarnia: Helion
Cena książki: 126,65 zł (poprzednio: 147,27 zł)
Oszczędzasz: 14% (-20,62 zł)
With a worldwide community of users and more than a million dedicated programmers, Perl has proven to be the most effective language for the latest trends in computing and business.Every programmer must keep up with the latest tools and techniques. This updated version of Advanced Perl Programming from O'Reilly gives you the essential knowledge of the modern Perl programmer. Whatever your current level of Perl expertise, this book will help you push your skills to the next level and become a more accomplished programmer.O'Reilly's most high-level Perl tutorial to date, Advanced Perl Programming, Second Edition teaches you all the complex techniques for production-ready Perl programs. This completely updated guide clearly explains concepts such as introspection, overriding built-ins, extending Perl's object-oriented model, and testing your code for greater stability.Other topics include:
- Complex data structures
- Parsing
- Templating toolkits
- Working with natural language data
- Unicode
- Interaction with C and other languages
Osoby które kupowały "Advanced Perl Programming. 2nd Edition", wybierały także:
- Perl. Mistrzostwo w programowaniu 44,00 zł, (22,00 zł -50%)
- Wielkie umysły programowania. Jak myślą i pracują twórcy najważniejszych języków 79,00 zł, (47,40 zł -40%)
- Learning Perl. Making Easy Things Easy and Hard Things Possible. 7th Edition 169,00 zł, (118,30 zł -30%)
- 100 sposobów na Perl 39,00 zł, (29,25 zł -25%)
- Mastering Perl. 2nd Edition 167,03 zł, (143,65 zł -14%)
Spis treści
Advanced Perl Programming. 2nd Edition eBook -- spis treści
- Advanced Perl Programming, 2nd Edition
- SPECIAL OFFER: Upgrade this ebook with OReilly
- Preface
- Audience
- Contents
- Conventions Used in This Book
- Using Code Examples
- Wed Like to Hear from You
- Safari Enabled
- Acknowledgments
- 1. Advanced Techniques
- 1.1. Introspection
- 1.1.1. Preparatory Work: Fun with Globs
- 1.1.1.1. Aliasing
- 1.1.1.2. Accessing parts of a glob
- 1.1.1.3. Creating subroutines with glob assignment
- 1.1.2. AUTOLOAD
- 1.1.3. CORE and CORE::GLOBAL
- 1.1.4. Case Study: Hook::LexWrap
- 1.1.5. Introspection with B
- 1.1.1. Preparatory Work: Fun with Globs
- 1.2. Messing with the Class Model
- 1.2.1. UNIVERSAL
- 1.2.2. Dynamic Method Resolution
- 1.2.3. Case Study: Singleton Methods
- 1.3. Unexpected Code
- 1.3.1. Overloading
- 1.3.1.1. Simple operator overloading
- 1.3.1.2. Other operator overloading
- 1.3.1.3. Non-operator overloading
- 1.3.2. Time Shifting
- 1.3.2.1. Doing things now with eval/BEGIN
- 1.3.2.2. Doing things later with CHECK
- 1.3.2.3. Doing things at the end with DESTROY
- 1.3.2.4. Case study: Acme::Dot
- 1.3.1. Overloading
- 1.4. Conclusion
- 1.1. Introspection
- 2. Parsing Techniques
- 2.1. Parse::RecDescent Grammars
- 2.1.1. Simple Parsing with Parse::RecDescent
- 2.1.1.1. Types of match
- 2.1.1.2. Actions
- 2.1.2. Debugging
- 2.1.3. More Difficult Parsing
- 2.1.3.1. Commit, reject, and error
- 2.1.3.2. Syntactic whitespace
- 2.1.3.3. Automating the process
- 2.1.3.4. And much more...
- 2.1.4. Some Examples
- 2.1.4.1. Parsing iCalendar data
- 2.1.4.2. .procmailrc
- 2.1.1. Simple Parsing with Parse::RecDescent
- 2.2. Parse::Yapp
- 2.3. Other Parsing Techniques
- 2.3.1. HTML::Parser
- 2.3.2. XML Parsing
- 2.3.3. And Everything Else...
- 2.4. Conclusion
- 2.1. Parse::RecDescent Grammars
- 3. Templating Tools
- 3.1. Formats and Text::Autoformat
- 3.1.1. Text::Autoformat
- 3.2. Text::Template
- 3.2.1. Loops, Arrays, and Hashes
- 3.2.2. Security and Error Checking
- 3.2.3. Text::Template Tricks
- 3.3. HTML::Template
- 3.3.1. Variables and Conditions
- 3.3.2. Loops
- 3.3.3. RSS Aggregation
- 3.4. HTML::Mason
- 3.4.1. Basic Components
- 3.4.2. Basic Dynamism
- 3.4.3. Perl Blocks
- 3.4.4. Our RSS Aggregator
- 3.5. Template Toolkit
- 3.5.1. Filters
- 3.5.2. Plugins
- 3.5.3. Components and Macros
- 3.5.4. The RSS Aggregator
- 3.6. AxKit
- 3.7. Conclusion
- 3.1. Formats and Text::Autoformat
- 4. Objects, Databases, and Applications
- 4.1. Beyond Flat Files
- 4.2. Object Serialization
- 4.2.1. Our Schema and Classes
- 4.2.2. Dumping Data
- 4.2.3. Storing and Retrieving Data
- 4.2.4. The Pruning Problem
- 4.2.5. Multilevel DBMs
- 4.2.6. Pixie
- 4.3. Object Databases
- 4.3.1. Object Database Pitfalls
- 4.3.2. Tangram
- 4.3.2.1. Tangram CRUD: create, read, update, delete
- 4.4. Database Abstraction
- 4.4.1. Trivial Mapping
- 4.4.2. Class::DBI
- 4.4.2.1. Relationships
- 4.4.2.2. Class::DBI extensions
- 4.4.3. Other Contenders
- 4.5. Practical Uses in Web Applications
- 4.5.1. Class::DBI and the Template Toolkit
- 4.5.2. Maypole
- 4.5.3. Other Application Frameworks
- 4.6. Conclusion
- 5. Natural Language Tools
- 5.1. Perl and Natural Languages
- 5.2. Handling English Text
- 5.2.1. Pluralizations and Inflections
- 5.2.2. Converting Words to Numbers
- 5.3. Modules for Parsing English
- 5.3.1. Splitting Up Text
- 5.3.2. Stemming and Stopwording
- 5.4. Categorization and Extraction
- 5.4.1. Bayesian Analysis
- 5.4.2. Keyword Extraction and Summary
- 5.4.2.1. Keyword extraction
- 5.4.3. Extracting Names and Places
- 5.5. Conclusion
- 6. Perl and Unicode
- 6.1. Terminology
- 6.2. What Is Unicode?
- 6.2.1. What Is UCS?
- 6.2.2. What is the Unicode Consortium?
- 6.2.3. Why Should I Care?
- 6.3. Unicode Transformation Formats
- 6.3.1. UCS-2
- 6.3.2. UTF-8
- 6.3.3. UTF-16BE
- 6.3.4. UTF-16LE
- 6.3.5. UCS-4
- 6.3.6. UTF-32
- 6.3.7. UTF-EBCDIC
- 6.3.8. UTF-7
- 6.4. Handling UTF-8 Data
- 6.4.1. Entering Unicode Characters
- 6.4.2. Unicode Regular Expressions
- 6.5. Encode
- 6.5.1. The PerlIO Trick
- 6.5.2. The Gory Details
- 6.6. Unicode for XS Authors
- 6.6.1. Traversing Strings
- 6.6.2. Encoding Strings
- 6.7. Conclusion
- 7. POE
- 7.1. Programming in an Event-Driven Environment
- 7.1.1. Hello, POE
- 7.1.2. Hello, Again, POE!
- 7.1.3. Wheels
- 7.1.4. A Port Forwarder
- 7.2. Top-Level Pieces: Components
- 7.2.1. Medium-Level Components
- 7.2.2. A POE Web Server
- 7.2.3. Highest-Level Components
- 7.3. Conclusion
- 7.1. Programming in an Event-Driven Environment
- 8. Testing
- 8.1. Test::Simple
- 8.2. Test::More
- 8.2.1. Skips and Todos
- 8.2.2. Automated Tests
- 8.3. Test::Harness
- 8.4. Test::Builder
- 8.5. Test::Builder::Tester
- 8.6. Keeping Tests and Code Together
- 8.7. Unit Tests
- 8.7.1. Test::Class
- 8.7.2. Test::MockObject
- 8.7.3. Testing Apache, DBI, and Other Complex Environments
- 8.8. Conclusion
- 9. Inline Extensions
- 9.1. Simple Inline::C
- 9.1.1. Taking and Giving
- 9.1.2. C is not Always a Win
- 9.2. More Complex Tasks with Inline::C
- 9.2.1. Dealing with Perl's Internal Values
- 9.2.2. Handling the Stack
- 9.2.3. Handling More Complex Perl Types
- 9.2.3.1. References
- 9.2.3.2. Arrays
- 9.2.3.3. Hashes
- 9.2.4. Wrapping C Libraries
- 9.2.5. Debugging Inline Extensions
- 9.2.6. Packaging Inline Modules
- 9.3. Inline:: Everything Else
- 9.3.1. Inline::Python
- 9.3.2. Inline::Ruby
- 9.3.3. Inline::CPR
- 9.3.4. Inline::Struct
- 9.3.5. Miscellaneous Other Inlines
- 9.4. Conclusion
- 9.1. Simple Inline::C
- 10. Fun with Perl
- 10.1. Obfuscation
- 10.2. Just Another Perl Hacker
- 10.3. Perl Golf
- 10.4. Perl Poetry
- 10.5. Acme::*
- 10.6. Conclusion
- About the Author
- Colophon
- SPECIAL OFFER: Upgrade this ebook with OReilly