Afbeelding van de auteur.
7+ Werken 3,006 Leden 14 Besprekingen

Over de Auteur

Fotografie: Tim Bray

Werken van Tom Christiansen

Gerelateerde werken

Learning Perl [6th edition] (2011)sommige edities656 exemplaren

Tagged

Algemene kennis

Geboortedatum
1963-02-13
Geslacht
male
Nationaliteit
USA
Woonplaatsen
Boulder, Colorado, USA
Prijzen en onderscheidingen
White Camel (1999 | Perl documentation)

Leden

Besprekingen

Indeholder "List of Examples", "Foreword", "Preface", "1. Strings", " 1.0 Introduction", " 1.1 Accessing Substrings", " 1.2 Establishing a Default Value", " 1.3 Exchanging Values Without Using Temporary Variables", " 1.4 Converting Between ASCII Characters and Values", " 1.5 Processing a String One Character at a Time", " 1.6 Reversing a String by Word or Character", " 1.7 Expanding and Compressing Tabs", " 1.8 Expanding Variables in User Input", " 1.9 Controlling Case", " 1.10 Interpolating Functions and Expressions Within Strings", " 1.11 Indenting Here Documents", " 1.12 Reformatting Paragraphs", " 1.13 Escaping Characters", " 1.14 Trimming Blanks from the Ends of a String", " 1.15 Parsing Comma-Separated Data", " 1.16 Soundex Matching", " 1.17 Program: fixstyle", " 1.18 Program: psgrep", "2. Numbers", " 2.0 Introduction", " 2.1 Checking Whether a String Is a Valid Number", " 2.2 Comparing Floating-Point Numbers", " 2.3 Rounding Floating-Point Numbers", " 2.4 Converting Between Binary and Decimal", " 2.5 Operating on a Series of Integers", " 2.6 Working with Roman Numerals", " 2.7 Generating Random Numbers", " 2.8 Generating Different Random Numbers", " 2.9 Making Numbers Even More Random", " 2.10 Generating Biased Random Numbers", " 2.11 Doing Trigonometry in Degrees, not Radians", " 2.12 Calculating More Trigonometric Functions", " 2.13 Taking Logarithms", " 2.14 Multiplying Matrices", " 2.15 Using Complex Numbers", " 2.16 Converting Between Octal and Hexadecimal", " 2.17 Putting Commas in Numbers", " 2.18 Printing Correct Plurals", " 2.19 Program: Calculating Prime Factors", "3. Dates and Times", " 3.0 Introduction", " 3.1 Finding Today's Date", " 3.2 Converting DMYHMS to Epoch Seconds", " 3.3 Converting Epoch Seconds to DMYHMS", " 3.4 Adding to or Subtracting from a Date", " 3.5 Difference of Two Dates", " 3.6 Day in a Week/Month/Year or Week Number", " 3.7 Parsing Dates and Times from Strings", " 3.8 Printing a Date", " 3.9 High-Resolution Timers", " 3.10 Short Sleeps", " 3.11 Program: hopdelta", "4. Arrays", " 4.0 Introduction", " 4.1 Specifying a List In Your Program", " 4.2 Printing a List with Commas", " 4.3 Changing Array Size", " 4.4 Doing Something with Every Element in a List", " 4.5 Iterating Over an Array by Reference", " 4.6 Extracting Unique Elements from a List", " 4.7 Finding Elements in One Array but Not Another", " 4.8 Computing Union, Intersection, or Difference of Unique Lists", " 4.9 Appending One Array to Another", " 4.10 Reversing an Array", " 4.11 Processing Multiple Elements of an Array", " 4.12 Finding the First List Element That Passes a Test", " 4.13 Finding All Elements in an Array Matching Certain Criteria", " 4.14 Sorting an Array Numerically", " 4.15 Sorting a List by Computable Field", " 4.16 Implementing a Circular List", " 4.17 Randomizing an Array", " 4.18 Program: words", " 4.19 Program: permute", "5. Hashes", " 5.0 Introduction", " 5.1 Adding an Element to a Hash", " 5.2 Testing for the Presence of a Key in a Hash", " 5.3 Deleting from a Hash", " 5.4 Traversing a Hash", " 5.5 Printing a Hash", " 5.6 Retrieving from a Hash in Insertion Order", " 5.7 Hashes with Multiple Values Per Key", " 5.8 Inverting a Hash", " 5.9 Sorting a Hash", " 5.10 Merging Hashes", " 5.11 Finding Common or Different Keys in Two Hashes", " 5.12 Hashing References", " 5.13 Presizing a Hash", " 5.14 Finding the Most Common Anything", " 5.15 Representing Relationships Between Data", " 5.16 Program: dutree", "6. Pattern Matching", " 6.0 Introduction", " 6.1 Copying and Substituting Simultaneously", " 6.2 Matching Letters", " 6.3 Matching Words", " 6.4 Commenting Regular Expressions", " 6.5 Finding the Nth Occurrence of a Match", " 6.6 Matching Multiple Lines", " 6.7 Reading Records with a Pattern Separator", " 6.8 Extracting a Range of Lines", " 6.9 Matching Shell Globs as Regular Expressions", " 6.10 Speeding Up Interpolated Matches", " 6.11 Testing for a Valid Pattern", " 6.12 Honoring Locale Settings in Regular Expressions", " 6.13 Approximate Matching", " 6.14 Matching from Where the Last Pattern Left Off", " 6.15 Greedy and Non-Greedy Matches", " 6.16 Detecting Duplicate Words", " 6.17 Expressing AND, OR, and NOT in a Single Pattern", " 6.18 Matching Multiple-Byte Characters", " 6.19 Matching a Valid Mail Address", " 6.20 Matching Abbreviations", " 6.21 Program: urlify", " 6.22 Program: tcgrep", " 6.23 Regular Expression Grabbag", "7. File Access", " 7.0 Introduction", " 7.1 Opening a File", " 7.2 Opening Files with Unusual Filenames", " 7.3 Expanding Tildes in Filenames", " 7.4 Making Perl Report Filenames in Errors", " 7.5 Creating Temporary Files", " 7.6 Storing Files Inside Your Program Text", " 7.7 Writing a Filter", " 7.8 Modifying a File in Place with Temporary File", " 7.9 Modifying a File in Place with -i Switch", " 7.10 Modifying a File in Place Without a Temporary File", " 7.11 Locking a File", " 7.12 Flushing Output", " 7.13 Reading from Many Filehandles Without Blocking", " 7.14 Doing Non-Blocking I/O", " 7.15 Determining the Number of Bytes to Read", " 7.16 Storing Filehandles in Variables", " 7.17 Caching Open Output Filehandles", " 7.18 Printing to Many Filehandles Simultaneously", " 7.19 Opening and Closing File Descriptors by Number", " 7.20 Copying Filehandles", " 7.21 Program: netlock", " 7.22 Program: lockarea", "8. File Contents", " 8.0 Introduction", " 8.1 Reading Lines with Continuation Characters", " 8.2 Counting Lines (or Paragraphs or Records) in a File", " 8.3 Processing Every Word in a File", " 8.4 Reading a File Backwards by Line or Paragraph", " 8.5 Trailing a Growing File", " 8.6 Picking a Random Line from a File", " 8.7 Randomizing All Lines", " 8.8 Reading a Particular Line in a File", " 8.9 Processing Variable-Length Text Fields", " 8.10 Removing the Last Line of a File", " 8.11 Processing Binary Files", " 8.12 Using Random-Access I/O", " 8.13 Updating a Random-Access File", " 8.14 Reading a String from a Binary File", " 8.15 Reading Fixed-Length Records", " 8.16 Reading Configuration Files", " 8.17 Testing a File for Trustworthiness", " 8.18 Program: tailwtmp", " 8.19 Program: tctee", " 8.20 Program: laston", "9. Directories", " 9.0 Introduction", " 9.1 Getting and Setting Timestamps", " 9.2 Deleting a File", " 9.3 Copying or Moving a File", " 9.4 Recognizing Two Names for the Same File", " 9.5 Processing All Files in a Directory", " 9.6 Globbing, or Getting a List of Filenames Matching a Pattern", " 9.7 Processing All Files in a Directory Recursively", " 9.8 Removing a Directory and Its Contents", " 9.9 Renaming Files", " 9.10 Splitting a Filename into Its Component Parts", " 9.11 Program: symirror", " 9.12 Program: lst", "10. Subroutines", " 10.0 Introduction", " 10.1 Accessing Subroutine Arguments", " 10.2 Making Variables Private to a Function", " 10.3 Creating Persistent Private Variables", " 10.4 Determining Current Function Name", " 10.5 Passing Arrays and Hashes by Reference", " 10.6 Detecting Return Context", " 10.7 Passing by Named Parameter", " 10.8 Skipping Selected Return Values", " 10.9 Returning More Than One Array or Hash", " 10.10 Returning Failure", " 10.11 Prototyping Functions", " 10.12 Handling Exceptions", " 10.13 Saving Global Values", " 10.14 Redefining a Function", " 10.15 Trapping Undefined Function Calls with AUTOLOAD", " 10.16 Nesting Subroutines", " 10.17 Program: Sorting Your Mail", "11. References and Records", " 11.0 Introduction", " 11.1 Taking References to Arrays", " 11.2 Making Hashes of Arrays", " 11.3 Taking References to Hashes", " 11.4 Taking References to Functions", " 11.5 Taking References to Scalars", " 11.6 Creating Arrays of Scalar References", " 11.7 Using Closures Instead of Objects", " 11.8 Creating References to Methods", " 11.9 Constructing Records", " 11.10 Reading and Writing Hash Records to Text Files", " 11.11 Printing Data Structures", " 11.12 Copying Data Structures", " 11.13 Storing Data Structures to Disk", " 11.14 Transparently Persistent Data Structures", " 11.15 Program: Binary Trees", "12. Packages, Libraries, and Modules", " 12.0 Introduction", " 12.1 Defining a Module's Interface", " 12.2 Trapping Errors in require or use", " 12.3 Delaying use Until Run Time", " 12.4 Making Variables Private to a Module", " 12.5 Determining the Caller's Package", " 12.6 Automating Module Clean-Up", " 12.7 Keeping Your Own Module Directory", " 12.8 Preparing a Module for Distribution", " 12.9 Speeding Module Loading with SelfLoader", " 12.10 Speeding Up Module Loading with Autoloader", " 12.11 Overriding Built-In Functions", " 12.12 Reporting Errors and Warnings Like Built-Ins", " 12.13 Referring to Packages Indirectly", " 12.14 Using h2ph to Translate C #include Files", " 12.15 Using h2xs to Make a Module with C Code", " 12.16 Documenting Your Module with Pod", " 12.17 Building and Installing a CPAN Module", " 12.18 Example: Module Template", " 12.19 Program: Finding Versions and Descriptions of Installed Modules", "13. Classes, Objects, and Ties", " 13.0 Introduction", " 13.1 Constructing an Object", " 13.2 Destroying an Object", " 13.3 Managing Instance Data", " 13.4 Managing Class Data", " 13.5 Using Classes as Structs", " 13.6 Cloning Objects", " 13.7 Calling Methods Indirectly", " 13.8 Determining Subclass Membership", " 13.9 Writing an Inheritable Class", " 13.10 Accessing Overridden Methods", " 13.11 Generating Attribute Methods Using AUTOLOAD", " 13.12 Solving the Data Inheritance Problem", " 13.13 Coping with Circular Data Structures", " 13.14 Overloading Operators", " 13.15 Creating Magic Variables with tie", "14. Database Access", " 14.0 Introduction", " 14.1 Making and Using a DBM File", " 14.2 Emptying a DBM File", " 14.3 Converting Between DBM Files", " 14.4 Merging DBM Files", " 14.5 Locking DBM Files", " 14.6 Sorting Large DBM Files", " 14.7 Treating a Text File as a Database Array", " 14.8 Storing Complex Data in a DBM File", " 14.9 Persistent Data", " 14.10 Executing an SQL Command Using DBI and DBD", " 14.11 Program: ggh—Grep Netscape Global History", "15. User Interfaces", " 15.0 Introduction", " 15.1 Parsing Program Arguments", " 15.2 Testing Whether a Program Is Running Interactively", " 15.3 Clearing the Screen", " 15.4 Determining Terminal or Window Size", " 15.5 Changing Text Color", " 15.6 Reading from the Keyboard", " 15.7 Ringing the Terminal Bell", " 15.8 Using POSIX termios", " 15.9 Checking for Waiting Input", " 15.10 Reading Passwords", " 15.11 Editing Input", " 15.12 Managing the Screen", " 15.13 Controlling Another Program with Expect", " 15.14 Creating Menus with Tk", " 15.15 Creating Dialog Boxes with Tk", " 15.16 Responding to Tk Resize Events", " 15.17 Removing the DOS Shell Window with Windows Perl/Tk", " 15.18 Program: Small termcap program", " 15.19 Program: tkshufflepod", "16. Process Management and Communication", " 16.0 Introduction", " 16.1 Gathering Output from a Program", " 16.2 Running Another Program", " 16.3 Replacing the Current Program with a Different One", " 16.4 Reading or Writing to Another Program", " 16.5 Filtering Your Own Output", " 16.6 Preprocessing Input", " 16.7 Reading STDERR from a Program", " 16.8 Controlling Input and Output of Another Program", " 16.9 Controlling the Input, Output, and Error of Another Program", " 16.10 Communicating Between Related Processes", " 16.11 Making a Process Look Like a File with Named Pipes", " 16.12 Sharing Variables in Different Processes", " 16.13 Listing Available Signals", " 16.14 Sending a Signal", " 16.15 Installing a Signal Handler", " 16.16 Temporarily Overriding a Signal Handler", " 16.17 Writing a Signal Handler", " 16.18 Catching Ctrl-C", " 16.19 Avoiding Zombie Processes", " 16.20 Blocking Signals", " 16.21 Timing Out an Operation", " 16.22 Program: sigrand", "17. Sockets", " 17.0 Introduction", " 17.1 Writing a TCP Client", " 17.2 Writing a TCP Server", " 17.3 Communicating over TCP", " 17.4 Setting Up a UDP Client", " 17.5 Setting Up a UDP Server", " 17.6 Using UNIX Domain Sockets", " 17.7 Identifying the Other End of a Socket", " 17.8 Finding Your Own Name and Address", " 17.9 Closing a Socket After Forking", " 17.10 Writing Bidirectional Clients", " 17.11 Forking Servers", " 17.12 Pre-Forking Servers", " 17.13 Non-Forking Servers", " 17.14 Writing a Multi-Homed Server", " 17.15 Making a Daemon Server", " 17.16 Restarting a Server on Demand", " 17.17 Program: backsniff", " 17.18 Program: fwdport", "18. Internet Services", " 18.0 Introduction", " 18.1 Simple DNS Lookups", " 18.2 Being an FTP Client", " 18.3 Sending Mail", " 18.4 Reading and Posting Usenet News Messages", " 18.5 Reading Mail with POP3", " 18.6 Simulating Telnet from a Program", " 18.7 Pinging a Machine", " 18.8 Using Whois to Retrieve Information from the InterNIC", " 18.9 Program: expn and vrfy", "19. CGI Programming", " 19.0 Introduction", " 19.1 Writing a CGI Script", " 19.2 Redirecting Error Messages", " 19.3 Fixing a 500 Server Error", " 19.4 Writing a Safe CGI Program", " 19.5 Making CGI Scripts Efficient", " 19.6 Executing Commands Without Shell Escapes", " 19.7 Formatting Lists and Tables with HTML Shortcuts", " 19.8 Redirecting to a Different Location", " 19.9 Debugging the Raw HTTP Exchange", " 19.10 Managing Cookies", " 19.11 Creating Sticky Widgets", " 19.12 Writing a Multiscreen CGI Script", " 19.13 Saving a Form to a File or Mail Pipe", " 19.14 Program: chemiserie", "20. Web Automation", " 20.0 Introduction", " 20.1 Fetching a URL from a Perl Script", " 20.2 Automating Form Submission", " 20.3 Extracting URLs", " 20.4 Converting ASCII to HTML", " 20.5 Converting HTML to ASCII", " 20.6 Extracting or Removing HTML Tags", " 20.7 Finding Stale Links", " 20.8 Finding Fresh Links", " 20.9 Creating HTML Templates", " 20.10 Mirroring Web Pages", " 20.11 Creating a Robot", " 20.12 Parsing a Web Server Log File", " 20.13 Processing Server Logs", " 20.14 Program: htmlsub", " 20.15 Program: hrefsub", "Index", "Colophon".

Hvert afsnit er delt op i ca fire afsnit: Problem, Solution, Discussion, See Also. Nogle gange diskuteres flere løsninger til et problem. Supergod bog med masser af opskrifter.
… (meer)
 
Gemarkeerd
bnielsen | 2 andere besprekingen | Feb 11, 2016 |
Like any cookbook, culinary or computery, the Perl Cookbook is best enjoyed as a reference. While reading it from cover to cover will result in a deeper understanding of Perl problem solving, this book belongs on a shelf, watching over you while you work, until you hit a wall (the same wall you banged your head against until you started using Perl). Then, you just flip to the appropriate recipe, ordered by type, and with that, most of your problems are solved.



Christiansen and Torkington have put together a fabulous collection of recipes, some being the everyday practices of an avid Perl programmer, while some are more esoteric, coming along only when you need to consider bytes instead of lines in a file, or need to write an RSS reader/feeder. You know, things that don’t normally come up to most people.



I was impressed by the breadth of this book, and the coverage of its topics was well satisfying. It’s no wonder I look for the “O’Reilly book” first when picking up a new computer text.



Well worth the time of any Perl programming looking for some inspiration.
… (meer)
 
Gemarkeerd
aethercowboy | 1 andere bespreking | Aug 28, 2010 |
Indeholder "Preface", "Part 1: Overview", "Chapter 1: An Overview of Perl", "Part 2: The Gory Details", "Chapter 2: Bits and Pieces", "Chapter 3: Unary and Binary Operators", "Chapter 4: Statements and Declarations", "Chapter 5: Pattern Matching", "Chapter 6: Subroutines", "Chapter 7: Formats", "Chapter 8: References", "Chapter 9: Data Structures", "Chapter 10: Packages", "Chapter 11: Modules", "Chapter 12: Objects", "Chapter 13: Overloading", "Chapter 14: Tied Variables", "Part 3: Perl as Technology", "Chapter 15: Unicode", "Chapter 16: Interprocess Communication", "Chapter 17: Threads", "Chapter 18: Compiling", "Chapter 19: The Command-Line Interface", "Chapter 20: The Perl Debugger", "Chapter 21: Internals and Externals", "Part 4: Perl as Culture", "Chapter 22: CPAN", "Chapter 23: Security", "Chapter 24: Common Practices", "Chapter 25: Portable Perl", "Chapter 26: Plain Old Documentation", "Chapter 27: Perl Culture", "Part 5: Reference Material", "Chapter 28: Special Names", "Chapter 29: Functions", "Chapter 30: The Standard Perl Library", "Chapter 31: Pragmatic Modules", "Chapter 32: Standard Modules", "Chapter 33: Diagnostic Messages", "Glossary", "Index", "Colophon".

Glimrende introduktion til Perl programmeringssproget. Der er små jokes rundt omkring, men også nyttige småprogrammer.
Desværre var det her en paperback udgave og den går i stykker i ryggen, når der har været brugt et stykke tid.
… (meer)
 
Gemarkeerd
bnielsen | 8 andere besprekingen | Aug 16, 2010 |
Absolutely essential for the Perl programmer. I learned Perl using this book and still refer to it from time to time.
 
Gemarkeerd
colinwu | 8 andere besprekingen | Nov 7, 2007 |

Lijsten

Misschien vindt je deze ook leuk

Gerelateerde auteurs

Statistieken

Werken
7
Ook door
1
Leden
3,006
Populariteit
#8,487
Waardering
4.1
Besprekingen
14
ISBNs
36
Talen
9

Tabellen & Grafieken