Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
1Activity
0 of .
Results for:
No results containing your search query
P. 1
Perl by Example

Perl by Example

Ratings: (0)|Views: 5 |Likes:
Published by Aravind Nkl
Describes about Perl with examples
Describes about Perl with examples

More info:

Published by: Aravind Nkl on Apr 23, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/27/2013

pdf

text

original

 
Contents
1.1 What is Perl?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 A Trivial Introduction to Computer Programming. . . . . . . . . . . . . . . . . . . . 11.3 Scripts vs. Programs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4 An Overview of the Software Development Process. . . . . . . . . . . . . . . . . . . . 4
2.1 What can Perl do?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Comparison with Other Programming Languages. . . . . . . . . . . . . . . . . . . . 82.2.1 C/C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.2 PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.3 Java/JSP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2.4 ASP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3 What do I need to learn Perl?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4 Make Good Use of Online Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.5 The Traditional “Hello World” Program. . . . . . . . . . . . . . . . . . . . . . . . . . 122.6 How A Perl Program Is Executed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.7 Literals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.7.1 Numbers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.7.2 Strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.8 Introduction to Data Structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1 Scalar Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.1.1 Assignment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.1.2 Nomenclature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.1.3 Variable Substitution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.1.4
— Extraction of Substrings. . . . . . . . . . . . . . . . . . . . . . 263.1.5
— Length of String. . . . . . . . . . . . . . . . . . . . . . . . . . . 263.2 Lists and Arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.2.1 Creating an Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.2.2 Adding Elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.2.3 Getting the number of Elements in an Array . . . . . . . . . . . . . . . . . . . 293.2.4 Accessing Elements in an Arra. . . . . . . . . . . . . . . . . . . . . . . . . . 303.2.5 Removing Elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.2.6
: the Versatile Function. . . . . . . . . . . . . . . . . . . . . . . . . 323.2.7 Miscellaneous List-Related Functions. . . . . . . . . . . . . . . . . . . . . . . 333.2.8 Check for Existence of Elements in an Array (Avoid!). . . . . . . . . . . . . . 353.3 Hashes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.3.1 Assignment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38i
 
ii CONTENTS
3.3.2 Accessing elements in the Hash. . . . . . . . . . . . . . . . . . . . . . . . . . 403.3.3 Removing Elements from a Hash. . . . . . . . . . . . . . . . . . . . . . . . . 403.3.4 Searching for an Element in a Hash. . . . . . . . . . . . . . . . . . . . . . . . 413.4 Contexts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.5 Miscellaneous Issues with Lists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.2 Description of some Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484.2.1 Arithmetic Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484.2.2 String Manipulation Operators. . . . . . . . . . . . . . . . . . . . . . . . . . 504.2.3 Comparison Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.2.4 Equality Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.2.5 Logical Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544.2.6 Bitwise Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564.2.7 Assignment Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574.2.8 Other Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.3 Operator Precedence and Associativity . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.4 Constructing Your Own
Routine. . . . . . . . . . . . . . . . . . . . . . . . . 64
5.1 Breaking Up Your Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.1.1 Sourcing External Files with
. . . . . . . . . . . . . . . . . . . . . 675.2 Scope and Code Blocks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.2.1 Introduction to Associations. . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.2.2 Code Blocks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.3 Subroutines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705.3.1 Creating and Using A Subroutine. . . . . . . . . . . . . . . . . . . . . . . . . 715.3.2 Prototypes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735.3.3 Recursion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755.3.4 Creating Context-sensitive Subroutines. . . . . . . . . . . . . . . . . . . . . . 785.4 Packages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805.4.1 Declaring a Package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805.4.2 Package Variable Referencing. . . . . . . . . . . . . . . . . . . . . . . . . . . 815.4.3 Package Variables and Symbol Tables. . . . . . . . . . . . . . . . . . . . . . . 815.4.4 Package Constructors with
. . . . . . . . . . . . . . . . . . . . . . . 825.5 Lexical Binding and Dynamic Binding. . . . . . . . . . . . . . . . . . . . . . . . . . . 825.6 Conditionals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865.7 Loops. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885.7.1
loop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885.7.2
loop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.7.3
loop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.7.4 Loop Control Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915.8 Leftovers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956.2 Creating a Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956.3 Using References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976.4 Pass By Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006.5 How Everything Fits Together. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
 
CONTENTS iii
6.6 Typeglobs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057.2 Object-Oriented Concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057.2.1 Programming Paradigms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057.2.2 Basic Ideas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067.2.3 Fundamental Elements of Object-Oriented Programming. . . . . . . . . . . . 1077.3 OOP Primer: Statistics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077.3.1 Creating and Using A Perl Class. . . . . . . . . . . . . . . . . . . . . . . . . . 1107.3.2 How A Class Is Instantiated. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117.4 Inheritance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1198.2 Filehandles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1198.2.1
a File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1208.2.2 Output Redirection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218.3 File Input and Output Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228.3.1
— Read A Line from Filehandle. . . . . . . . . . . . . . . . . . . 1228.3.2
— Binary Mode Declaration. . . . . . . . . . . . . . . . . . . . . 1228.3.3
— Output To A FileHandle. . . . . . . . . . . . . . . . . 1248.3.5
— Set File Pointer Position. . . . . . . . . . . . . . . . . . . . . . . . 1268.3.6
— Return File Pointer Position. . . . . . . . . . . . . . . . . . . . . . 1278.3.7
ed File. . . . . . . . . . . . . . . . . . . . . . . . . 1278.4 Directory Traversal Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1288.4.1
— Open A Directory . . . . . . . . . . . . . . . . . . . . . . . . . 1288.4.2
— Read Directory Content. . . . . . . . . . . . . . . . . . . . . . 1288.4.3
— Close A Directory . . . . . . . . . . . . . . . . . . . . . . . . . 1288.4.4 Example: File Search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1288.5 File Test Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1318.6 File Locking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
9.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1379.2 Building a Pattern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1389.2.1 Getting your Foot Wet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1389.2.2 Introduction to
and the Binding Operator. . . . . . . . . . . . . . . . . . 1399.2.3 Metacharacters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1399.2.4 Quantifiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1419.2.5 Character Classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1419.2.6 Backtracking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1429.3 Regular Expression Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1439.3.1
— Pattern Matching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1439.3.2
— Search and Replace. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1449.3.3
— Global Character Transliteration. . . . . . . . . . . . . . . . . . . . 1449.4 Constructing Complex Regular Expressions. . . . . . . . . . . . . . . . . . . . . . . . 145

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->