SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
The World’s Easiest Perl 5 Tutorial—Updated for Today’s Applications and “Modern Perl” Best Practices
“When I look at my bookshelf, I see eleven books on Perl programming. Perl by Example, Third Edition, isn’t on the shelf; it sits on my desk, where I use it almost daily. I still think it is the best Perl book on the market for anyone—beginner or seasoned programmer—who uses Perl daily.”
—Bill Maples, Enterprise Network Support, Fidelity National Information Services
Perl by Example, Fifth Edition, is the proven, easy way to master Perl 5 programming. Legendary Silicon Valley programming instructor Ellie Quigley has fully updated and focused her classic text on today’s key Perl applications, especially automation, testing, data extraction, and legacy code maintenance. She has also revised this edition to reflect “modern Perl” practices that have emerged since Perl 5.10.
Quigley illuminates every technique with focused, classroom-tested code examples. For each example, she shows you code, input, and output, and provides detailed, line-by-line explanations of how the code generates that output. And her coverage is comprehensive, from basic syntax to regular expression handling, files, references, objects, working with databases, and much more…plus appendices that contain a complete list of functions and definitions, command-line switches, special variables, and popular modules.
New in This Edition
• Modern Perl approaches to using data types, operators, conditions, subroutines, packages, modules, references, pointers, files, objects, and more
• Many new examples, covering automation, testing, and data extraction
• A tutorial on writing object-oriented Perl with the Moose object system
• An introduction to Dancer, a powerful web application framework designed to replace CGI
• Updated code examples throughout
More than 50,000 sysadmins, power users, and developers have used this book’s previous editions to become expert Perl programmers, and you can, too–even if you’re completely new to Perl. Then, once you’re an expert, you’ll routinely return to this practical guide as the best source for reliable answers, solutions, and code. A more focused, quicker read than ever, this clear and practical guide will take you from your first Perl script to advanced applications. It’s the only Perl text you’ll need.
Ellie Quigley has taught scripting in Silicon Valley for more than twenty-five years. Her Perl and shell programming classes at the University of California, Santa Cruz Extension are part of Silicon Valley lore. Her other best-selling Prentice Hall books include UNIX® Shells by Example, Fourth Edition; PHP and MySQL by Example (with Marko Gargenta); and JavaScript by Example. A major player in developing UCSC’s Silicon Valley Extension program, she has created and customized courses for pioneering firms, including Xilinx, NetApp, Yahoo, and Juniper.
Preface xxv
Chapter 1: The Practical Extraction and Report Language 1
1.1 What Is Perl? 1
1.2 What Is an Interpreted Language? 2
1.3 Who Uses Perl? 3
1.4 Where to Get Perl 6
1.5 Perl Documentation 9
1.6 What You Should Know 13
1.7 What’s Next? 13
Chapter 2: Perl Quick Start 15
2.1 Quick Start, Quick Reference 15
2.2 Chapter Summary 32
2.3 What’s Next? 32
Chapter 3: Perl Scripts 33
3.1 Getting Started 33
3.2 Filehandles 37
3.3 Variables (Where to Put Data) 37
3.4 Summing It Up 42
3.5 Perl Switches 44
3.6 What You Should Know 47
3.7 What’s Next? 47
Exercise 3 Getting with It Syntactically 48
Chapter 4: Getting a Handle on Printing 49
4.1 The Special Filehandles STDOUT, STDIN, STDERR 49
4.2 Words 51
4.3 The print Function 51
4.4 Fancy Formatting with the printf Function 69
4.5 What Are Pragmas? 74
4.6 What You Should Know 78
4.7 What’s Next? 79
Exercise 4 A String of Perls 79
Chapter 5: What’s In a Name? 81
5.1 More About Data Types 81
5.2 Scalars, Arrays, and Hashes 87
5.3 Array Functions 105
5.4 Hash (Associative Array) Functions 125
5.5 What You Should Know 140
5.6 What’s Next? 141
Exercise 5 The Funny Characters 141
Chapter 6: Where’s the Operator? 145
6.1 About Perl Operators—More Context 145
6.2 Mixing Types 148
6.3 Precedence and Associativity 149
6.4 What You Should Know 178
6.5 What’s Next? 179
Exercise 6 Operator, Operator 179
Chapter 7: If Only, Unconditionally, Forever 181
7.1 Control Structures, Blocks, and Compound Statements 182
7.2 Statement Modifiers and Simple Statements 188
7.3 Repetition with Loops 190
7.4 Looping Modifiers 202
7.5 What You Should Know 217
7.6 What’s Next? 217
Exercise 7 What Are Your Conditions? 218
Chapter 8: Regular Expressions—Pattern Matching 219
8.1 What Is a Regular Expression? 219
8.2 Modifiers and Simple Statements with Regular Expressions 221
8.3 Regular Expression Operators 225
8.4 What You Should Know 243
8.5 What’s Next? 243
Exercise 8 A Match Made in Heaven 244
Chapter 9: Getting Control—Regular Expression Metacharacters 245
9.1 The RegExLib.com Library 245
9.2 Regular Expression Metacharacters 247
9.3 Unicode 290
9.4 What You Should Know 294
9.5 What’s Next? 295
Exercise 9 And the Search Goes On . . . 295
Chapter 10: Getting a Handle on Files 297
10.1 The User-Defined Filehandle 297
10.2 Reading from STDIN 307
10.3 Passing Arguments 333
10.4 File Testing 342
10.5 What You Should Know 344
10.6 What’s Next? 344
Exercise 10 Getting a Handle on Things 345
Chapter 11: How Do Subroutines Function? 347
11.1 Subroutines/Functions 348
11.2 Passing Arguments and the @_ Array 352
11.3 What You Should Know 373
11.4 What’s Next? 373
Exercise 11 I Can’t Seem to Function Without Subroutines 374
Chapter 12: Does This Job Require a Reference? 377
12.1 What Is a Reference? 377
12.2 What You Should Know 404
12.3 What’s Next? 404
Exercise 12 It’s Not Polite to Point! 405
Chapter 13: Modularize It, Package It, and Send It to the Library! 407
13.1 Before Getting Started 407
13.2 The Standard Perl Library 417
13.3 Modules from CPAN 436
13.4 Using Perlbrew and CPAN Minus 441
13.5 What You Should Know 444
13.6 What’s Next? 445
Exercise 13 I Hid All My Perls in a Package 445
Chapter 14: Bless Those Things! (Object-Oriented Perl) 447
14.1 The OOP Paradigm 447
14.2 Perl Classes, Objects, and Methods—Relating to the Real World 450
14.3 Anonymous Subroutines, Closures, and Privacy 478
14.4 Inheritance 484
14.5 Plain Old Documentation—Documenting a Module 501
14.6 Using Objects from the Perl Library 508
14.7 What You Should Know 512
14.8 What’s Next? 513
Exercise 14 What’s the Object of This Lesson? 513
Chapter 15: Perl Connects with MySQL 519
15.1 Introduction 519
15.2 What Is a Relational Database? 520
15.3 Getting Started with MySQL 530
15.4 What Is the Perl DBI? 556
15.5 Statements That Don’t Return Anything 579
15.6 Transactions 583
15.7 What’s Left? 590
15.8 What You Should Know 591
15.9 What’s Next? 591
Exercise 15 Practicing Queries and Using DBI 592
Chapter 16: Interfacing with the System 595
16.1 System Calls 595
16.2 Processes 629
16.3 Other Ways to Interface with the Operating System 658
16.4 Error Handling 664
16.5 Signals and the %SIG Hash 669
16.6 What You Should Know 673
Exercise 16 Interfacing with the System 674
Appendix A: Perl Built-ins, Pragmas, Modules, and the Debugger 675
A.1 Perl Functions 675
A.2 Special Variables 705
A.3 Perl Pragmas 708
A.4 Perl Modules 710
A.5 Command-Line Switches 716
A.6 Debugger 718
Appendix B: SQL Language Tutorial 723
B.1 What Is SQL? 723
B.2 SQL Data Manipulation Language (DML) 731
B.3 SQL Data Definition Language 748
B.5 Appendix Summary 770
B.6 What You Should Know 770
Exercise B Do You Speak My Language? 771
Appendix C: Introduction to Moose (A Postmodern Object System for Perl 5) 775
C.1 Getting Started 775
C.2 The Constructor 776
C.3 The Attributes 776
C.4 What About Moo? 795
C.5 Appendix Summary 796
C.6 References 796
Appendix D: Perlbrew, CPAN, and cpanm 797
D.1 CPAN and @INC 797
D.2 cpanm 802
D.3 Perlbrew 803
D.4 Caveats: C Dependencies 805
D.5 Windows 806
Appendix E: Dancing with Perl 807
E.1 A New Dancer App 808
Exercise E May I Have This Dance? 829
Index 831