Que Perl 5 By Example Oct 1996 ISBN 0789708663 pdf

  Perl 5 by Example by David Medinets

  

  ISBN: 0789708663 Published: 03-Oct-1996 Retail Price: $40 US

   PERL 5 BY EXAMPLE By Group Que

  Chapter 2 Numeric and String Literals

  

  

  

   ❍

  C O N T E N T S

   ❍

  

  

  

  

  Chapter 1 Getting Your Feet Wet

  This will open in a new browser window.

  

   ❍

  Chapter 4 Operators

  

  

  

   ❍

   ❍

   ❍

   ❍

   ❍

   ❍

  

  ❍

   ❍

  Chapter 3 Variables

  

  

  

  ❍

  ❍

  ❍

  ❍

  ❍

  

   ❍

   ❍

  

  

   ❍

  

   ❍

   ❍

   ❍

   ❍

   ❍

   ❍

   ❍

   ❍

   ❍

  

   ❍

   ❍

   ❍

   ❍

   ❍

  

  Chapter 5 Functions

  Chapter 6 Statements

  

  

  

   ❍

   ❍

   ❍

   ❍

  

  

  

   ❍

  

  

  

   ❍

   ❍

   ❍

   ❍

   ❍

  

   ❍

  Chapter 7 Control Statements

  

   ❍

   ❍

   ❍

   ❍

   ❍

  Chapter 9 Using Files

  

  

  

   ❍

   ❍

  Chapter 8 References

  ❍

  

  

  

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

   ❍

   ❍

   ❍

   ❍

   ❍

   ❍

  

  

  

Chapter 10 Regular Expressions Pattern Delimiters

  ❍

  ❍

  

  

  

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  

  

  ❍

  ❍

  Chapter 11 Creating Reports

  

  

  

   ❍

   ❍

   ❍

   ❍

   ❍

  Chapter 13 Handling Errors and Signals

  

   ❍

  

  Chapter 12 Using Special Variables

  

  

  

   ❍

   ❍

   ❍

   ❍

  

  Chapter 14 What Are Objects?

  Chapter 15 Perl Modules

  ❍

  ❍

  ❍

  

  

  

  

  

  

  

   ❍

  

  

  

  

  

  

   ❍

   ❍

   ❍

   ❍

  

  

  

  

  

  

  

  

   ❍

   ❍

   ❍

   ❍

  Chapter 17 Using Command-Line Options

  

  

   ❍

  

   ❍

   ❍

   ❍

   ❍

   ❍

   ❍

   ❍

  

  Chapter 16 Debugging Perl

  

  Chapter 18 Using Internet Protocols

  

  

  

  

  

  

  

  

  

  

  

  Chapter 19 What Is CGI?

  

   ❍

  

  

  

  

  

  

   ❍

   ❍

   ❍

   ❍

   ❍

  

  

  

  

  

   ❍

   ❍

  Chapter 21 Using Perl with Web Servers

  

  

  

   ❍

  

  

  

  ❍

  

  Chapter 20 Form Processing

  

  

  

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

   ❍

   ❍

   ❍

   ❍

  

  

Chapter 22 Internet Resources Usenet Newsgroups

  ❍

  ❍

  

  

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

   Appendix B

  

  

  

  

  

  

  

  

  

  

  

  

  

   Glossary

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  

  Appendix C Function List

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  ❍

   ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

   ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

   ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

   ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

   ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  

  ❍

   Copyright© 1996 by Que Corporation.

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

  ❍

   Using the Registry

  ❍ Appendix D

  ❍

  ❍

  ❍

  ❍

  ❍

  All rights reserved. Printed in the United States of America. No part of this book

may be used or reproduced in any form or by any means, or stored in a database or retrieval system, without prior written permission of the publisher except in the

case of brief quotations embodied in critical articles and reviews. Making copies of any part of this book for any purpose other than your own personal use is a violation of United States copyright laws. For information, address Que Corporation, 201 W. 103rd Street, Indianapolis, IN 46290. You may reach Que's direct sales line by calling 1-800-428-5331.

ISBN: 0-7897-0866-3

  HTML conversion by : M/s. LeafWriters (India) Pvt. Ltd.

  Website : Roland Elgey

  President Joseph B. Wikert

  Publisher Director of Lynn E. Zingraf

  Marketing Editorial Services Elizabeth Keaffaber Sandy Doell

  Managing Editor Director Bryan Gambrel Al Valvano

  Title Manager Project Director Susan Ross Moore, Elizabeth Barrett, Anne

  Production Editors Editors Matthew B. Cox Owen, Jeff Riley

  Product Marketing Assistant Product Kim Margolius Christy M. Miller

  Manager Marketing Manager Joe Milton, J. David Shinn, CNE, Synergetic Nadeem Muhammed

  Technical Editors Technical Specialist Resource Corp. Acquisitions Operations Carmen Krikorian Patricia J. Brooks

  Coordinator Coordinator Andrea Duvall Barb Kordesh

  Editorial Assistant Book Designer Ruth Harvey Bryan Flores

  Cover Designer Production About the Author David Medinets has been programming since 1980, when he started with a

TRS-80 Model 1. He still fondly remembers the days when he could crosswire the

keyboard to create funny-looking characters on the display. Since those days, he has spent time debugging Emacs on UNIX machines, working on VAXen, and

messing around with DOS microcomputers. David is married to Kathryn and lives

in northwest New Jersey. He runs Eclectic Consulting and has coauthored Special

Edition Using Lotus Notes Release 4 (Que), Special Edition Using Turbo C++ 4.5

for Windows (Que), Microsoft Office 95 Unleashed (Sams), and Visual Basic

Unleashed (Sams), among others. David can be reached at medined@planet.net.

  Acknowledgments

I'd like to thank all of the people at Que for making this book possible. You'll find their names listed on the Credits page, so I won't list them all here. Susan Ross Moore deserves special thanks for figuratively watching over my shoulder as I worked. Her comments definitely made this a better book. Al Valvano was instrumental in making sure that everything came together at the proper time.

My wonderful wife deserves some thanks for letting me hang out on the Internet at

all hours of the day and night while I did research for this book.

  While writing this book, I have gleaned information from many books, articles,

and Web resources. Where a particular item greatly influenced my thinking, I have

given credit in the appropriate section. Dale Bewley helped to create Chapter 19, "What Is CGI?"-Thanks Dale! And of course, no Perl author should forget to thank: Larry Wall for creating Perl in the first place; Tom Christiansen for his remarkable contributions to the Perl community; and Randal Schwartz for his Learning Perl book which every Perl programmer seems to have read. Thanks, David We'd Like to Hear from You! As part of our continuing effort to produce books of the highest possible quality, Que would like to hear your comments. To stay competitive, we really want you, as a computer book reader and user, to let us know what you like or dislike most about this book or other Que products.

  

You can mail comments, ideas, or suggestions for improving future editions to the

address below, or send us a fax at (317) 581-4663. Our staff and authors are available for questions and comments through our Internet site, at http://www.mcp.com/que, and Macmillan Computer Publishing also has a forum on CompuServe (type GO QUEBOOKS at any prompt). In addition to exploring our forum, please feel free to contact me personally to discuss your opinions of this book: I'm avalvano@que.mcp.com on the Internet, and 74671,3710 on CompuServe. Thanks in advance-your comments will help us to continue publishing the best books available on new computer technologies in today's market.

  Al Valvano Project Director Que Corporation

  201 W. 103rd Street Indianapolis, Indiana 46290 USA

  Introduction This book is based on the learn-by-doing principle because I believe that simply reading about a subject makes it harder to learn. After all, you don't read about putting together a jigsaw puzzle; you put the puzzle together yourself!

  Programming is the same way. You must actually run some programs in order to really understand the concepts.

  Perl 5 By Example will teach you how to use the Perl programming language by showing examples that demonstrate the concepts being discussed. The examples are designed to give you a chance to experiment-which in turn should clarify the material.

  Additional information and errata pages can be found at http://www.mtolive. com/pbe/index.html.

  The topics are covered in a straightforward, nontechnical manner, which allows

you to quickly understand the fundamental principles. After the main topic of each

  chapter is introduced, subtopics are explored in their own sections. Each section has its own Perl examples with explanations given in pseudocode. Each chapter finishes with review questions of varying difficulty based on the material in that chapter. The answers usually come from the text or are deducible

from the text, but occasionally you might need to experiment a little. Try to answer

the questions at all difficulty levels. If you get stuck turn to the answers provided

in Appendix A. Also, look at the summary sections after reading each chapter and

return to them frequently. After you've gone through several chapters, you'll begin

to understand more often the reason why a concept was illustrated or a question

was asked. Returning to questions that frustrated you earlier and realizing that now

you know the answers can be a big confidence builder.

  Who Should Use This Book? Perl 5 By Example should be read by anyone seeking to learn Perl. If you don't know any other programming languages, Chapters 2 through 7 will give you a solid introduction to the basics. If you already know another language, then skip Chapters 2 through 7 to see how Perl differs from other languages and start with

  Chapter 8, "References." This book follows a simple format. Each chapter contains a single topic-usually.

First, you read about the topic and then you see examples that let you work directly

with Perl to understand how the concepts can be applied to a program. At the end of each chapter is a summary, followed by review questions and exercises. This approach is designed to serve a broad range of readers from novice to advanced. If you've never programmed before, the learn-by-doing approach will help you move quickly and easily though this book. If you have programming experience, you'll find plenty of material to refine and enhance what you already know, and to give you a solid understanding of how Perl works.

  What Do I Need? In order to effectively use this book you need two things. You need a working copy of Perl 5. And you need a text editor. That's it.

  

You can use the examples in this book with just about any hardware and operating

system. I'm not sure that they would work on an Amiga system but other than that

you should be able to run every example.

  How to Use This Book

There are several ways to use this book. One obvious method is to begin at the first

page and proceed in order until the last. Most beginning programmers will use this

method and the book is specifically designed so that each chapter builds on the

last. Alternatively, you can read up to Chapter 10, "Regular Expressions," and then

skip to Appendix C, "Function List." You can then read specific chapters as needed

when your projects demand them. Either approach works.

  Tip

It is critical to read through the Function List (Appendix

C) at least once before starting any major project.

  

Otherwise, you might spend hours developing a function

that Perl already has predefined.

  Code Listings

Many readers prefer to type in most of the example code by hand; this helps them

focus on the code one line at a time. Another good approach is to work through an

example in a chapter, close the book, and enter it by hand from memory. The struggle that you experience will help to deepen your understanding. Remember, getting lost can be how you learn to find your way. If you're lazy, can't type fast, or are prone to wrist pains like some of my friends, you can copy the listings from the CD-ROM that is included at the back of this book. Each listing that is on the CD-ROM has a listing header like this: Listing 10.1 10LST01.PL-This Is a Sample Listing Header The name of the Perl source file will always be the same as the listing's number.

  After each example, experiment a little and see what happens. Change a few things, or add a couple, and change the code a bit. This will help you enjoy the learning experience more. The most important attribute of a successful learning experience is fun. If it is fun and you enjoy it, you will stay with it longer.

  Conventions The following conventions are used in this book:

  ● Code line, functions, variable names, and any text you see on-screen appear in a special monospace typeface.

  ● File names are also set in a monospace typeface. ● New terms are in italic. ●

  

Case is very important in Perl programming. Always pay attention to

uppercase and lowercase in variable and function names.

  ● If you are required to type text, the text you must type will appear in boldface. For example, "Type perl -w test.pl." Usually, however, the line is set off by itself in a monospace typeface, as shown in the following example: perl -w test.pl

  Icons Used in This Book Pseudocode is a special way of explaining a section of code with an

understandable, English language description. You often see pseudocode before a

code example. The following icon represents pseudocode: Overview

  

Part I, "Basic Perl," consists of the first eight chapters of this book. These chapters

discuss the fundamentals of Perl. Chapter 1, "Getting Your Feet Wet," presents a short history of Perl and lets you create and execute your first Perl program.

  Chapter 2, "Numeric and String Literals," tells you how to explicitly represent

non-changeable information in your program. Chapter 3, "Variables," shows how

to represent changeable information. Then Chapter 4, "Operators," discusses how

to change the information. Chapter 5, "Functions," discusses how to create parcels

of code that you can call or execute by name. Chapter 6, "Statements," dives deep

into exactly what the term statement means to Perl. Chapter 7, "Control

Statements," shows how different statements can be used to control your programs.

  

Chapter 8, "References," completes the introduction to Perl basics by taking a peek

into the world of data structures. The next three chapters make up Part II, "Intermediate Perl." These chapters contain valuable information that will let you create powerful, complete

applications. Chapter 9, "Using Files," discusses how files can be used to store and

retrieve information. Chapter 10, "Regular Expressions," highlights one of Perl's

most useful abilities-pattern matching. Chapter 11, "Creating Reports," shows you

how to present information in a structured way using Perl's inherent reporting ability.

  Part III, "Advanced Perl," discusses some of the more difficult aspects of Perl. Chapter 12, "Using Special Variables," lists all of the special variables that you use

in Perl and shows examples of the more useful ones. Chapter 13, "Handling Errors

and Signals," introduces the concept of error handling. Chapter 14, "What Are

Objects?," discusses the wonderful world of object-oriented programming. Chapter

15, "Perl Modules," shows you how to create your own modules to aid in reusing existing functions. Chapter 16, "Debugging Perl," helps you to find the bugs or

problems in your programs. Chapter 17, "Using the Command-Line Options," lists

all of the options that you can use on the command line that starts Perl.

  

Part IV, "Perl and the Internet," consists of five chapters that look at how Perl can

be used with the Internet. Chapter 18, "Using Internet Protocols," discusses several

of the protocols commonly used on the Internet-such as FTP, SMTP, and POP.

  

Chapter 19, "What Is CGI?," eases you into writing scripts that can be executed by

remote users. Chapter 20, "Form Processing," discusses HTML forms and how

  Perl scripts can process form information. Chapter 21, "Using Perl with Web

Servers," examines Web server log file and how to create HTML Web pages using

Perl. Chapter 22, "Internet Resources," lists several types of Perl resources that are

available on the Internet-such as Usenet Newsgroups, Web sites, and the #perl and #cgi IRC channels.

  Appendix A, "Answers to Review Questions," contains answers to the review questions that are at the end of every chapter. Try not to peek! Appendix B, "Glossary," lists definitions for some words you might be unfamiliar with.

Appendix C, "Function List," contains a list of Perl's many functions. Appendix D,

"Using the Registry," introduces you to the Registry database used by Windows 95

and Windows NT to store system and application information. Appendix E, "ASCII Table," shows you all of the ASCII codes and their corresponding characters. Appendix F, "What's on the CD?," describes the contents of the CD.

  Getting Your Feet Wet

CONTENTS

  

  

  

  

  

  

  ❍

  ❍

  

  

  

  

  You are about to embark on a journey through the world of Perl programming. You'll find that the trip has been `made easier by many examples liberally sprinkled along the trail. The beginning of the trip covers the basic concepts of the Perl language. Then you move on to some of the more advanced concepts-how to create Perl statements and whole programs. At the end of the trip, some guideposts are placed-in the form of Internet sites-to show you how to explore more advanced programming topics on your own.

  Do you know any other programming languages? If so, then learning Perl will be a snap. If not, take it slow, try all of the examples, and have fun experimenting as you read. I thought about adding a section here about programming ideals. Or perhaps, a discussion about the future of Perl. Then, I realized that when I was first learning computer languages, I didn't really care about that stuff. I just wanted to know about the language and what I could do with it. With that in mind, the next section on Perl's origin is very short. After all, you can read all the background -the Perl Home Page.

  Origins

  Perl began as the result of one man's frustration and, by his own account, inordinate laziness. It is a unique language in ways that cannot be conveyed simply by describing the technical details of the language. Perl is a state of mind as much as a language grammar. One of the oddities of the language is that its name has been given quite a few definitions. Originally, Perl meant the Practical Extraction Report Language. However, programmers also refer to is as the Pathologically Eclectic Rubbish Lister. Or even, Practically Everything Really Likable.

  Let's take a few minutes to look at the external forces which provoked Perl into being-it should give you an insight into the way Perl was meant to be used. Back in 1986, Larry Wall found himself working on a task which involved generating reports from a lot of text files with cross references. Being a UNIX programmer, and because the problem involved manipulating the contents of text files, he started to use awk for the task. But it soon became clear that awk wasn't up to the job; with no other obvious candidate for the job, he'd just have to write some code. Now here's the interesting bit: Larry could have just written a utility to manage the particular job at hand and gotten on with his life. He could see, though, that it wouldn't be long before he'd have to write another special utility to handle something else which the standard tools couldn't quite hack. (It's possible that he realized that most programmers were always writing special utilities to handle things which the standard tools couldn't quite hack.) So rather than waste any more of his time, he invented a new language and wrote an interpreter for it. If that seems like a paradox, it isn't really-it's always a bit more of an effort to set yourself up with the right tools, but if you do it right, the effort pays off. The new language had an emphasis on system management and text handling. After a few revisions, it could handle regular expressions, signals, and network sockets, too. It became known as Perl and quickly became popular with frustrated, lazy UNIX programmers. And the rest of us.

  Note

  Is it "Perl" or "perl?" The definitive word from Larry Wall is that it doesn't matter. Many programmers like to refer to languages with capitalized names (Perl) but the program originated on a UNIX system where short, lowercase names (awk, sed, and so forth) were the norm. As with so many things about the language, there's no single "right way" to do it; just use it the way you want. It's a tool, after all, not a dogma. If you're sufficiently pedantic, you may want to call it "[Pp]erl" after

Chapter 10 , "Regular Expressions." Similar to C? Perl programs bear a passing resemblance to C programs, perhaps because Perl was written in C, or perhaps

  because Larry found some of its syntactic conventions handy. But Perl is less pedantic and a lot more concise than C. Perl can handle low-level tasks quite well, particularly since Perl 5, when the whole messy business of references was put on a sound footing. In this sense, it has a lot in common with C. But Perl handles the internals of data types, memory allocation, and such automatically and seamlessly. This habit of picking up interesting features as it went along-regular expressions here, database handling there-has been regularized in Perl 5. It is now fairly easy to add your favorite bag of tricks to Perl by using modules. It is likely that many of the added-on features of Perl such as socket handling will be dropped from the core of Perl and moved out to modules after a time.

  Cost and Licensing

  Perl is free. The full source code and documentation are free to copy, compile, print, and give away. Any programs you write in Perl are yours to do with as you please; there are no royalties to pay and no restrictions on distributing them as far as Perl is concerned. It's not completely "public domain," though, and for very good reason. If the source were completely public domain, it would be possible for someone to make minor alterations to it, compile it, and sell it-in other words, to rip off its creator. On the other hand, without distributing the source code, it's hard to make sure that everyone who wants to can use it.

  The GNU General Public License is one way to distribute free software without the danger of someone taking advantage of you. Under this type of license, source code may be distributed freely and used by anybody, but any programs derived using such code must be released under the same type of license. In other words, if you derive any of your source code from GNU-licensed source code, you have to release your source code to anyone who wants it. This is often sufficient to protect the interests of the author, but it can lead to a plethora of derivative versions of the original package. This may deprive the original author of a say in the development of his or her own creation. It can also lead to confusion on the part of the end users as it becomes hard to establish which is the definitive version of the package, whether a particular script will work with a given version, and so on.

  That's why Perl is released under the terms of the "Artistic" license. This is a variation on the GNU General Public License which says that anyone who releases a package derived from Perl must make it clear that the package is not actually Perl. All modifications must be clearly flagged, executables renamed if necessary, and the original modules distributed along with the modified versions. The effect is that the original author is clearly recognized as the "owner" of the package. The general terms of the GNU General Public License also apply.

  Do You Have Perl Installed?

  It's critically important to have Perl installed on your computer before reading too much further. As you read the examples, you'll want to try them. If Perl is not already installed, momentum and time will be lost. It is very easy to see if your system already has Perl installed. Simply go to a command-line prompt and type: perl -v Hopefully, the response will be similar to this:

  This is perl, version 5.001 Unofficial patchlevel 1m.

  Copyright 1987-1994, Larry Wall Win32 port Copyright 1995 Microsoft Corporation. All rights reserved.

  Developed by hip communications inc., http://info.hip.com/info/ Perl for Win32 Build 107 Built Apr 16 1996@14:47:22 Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5.0 source kit. If you get an error message or you have version 4 of Perl, please see your system administrator or install Perl yourself. The next section describes how to get and install Perl.

  Getting and Installing Perl New versions of Perl are released on the Internet and distributed to Web sites and ftp archives across the world.

  UNIX binaries are generally not made available on the Internet, as it is generally better to build Perl on your system so that you can be certain it will work. All UNIX systems have a C compiler, after all. Each operating system has its own way of getting and installing Perl.

  For UNIX and OS/2-The Perl Home Page contains a software link

   ) that will enable you to download the latest Perl source code. The page also explains why Perl binaries are not available. Hopefully, your system will already have Perl installed. If not, try to get your system administrator to install it.

  For Windows 95/Windows NT-The home page of hip communications, inc.

   ) contains a link to download the i86 Release Binary. This link lets you download a zip file that contains the Perl files in compressed form. Instructions for compiling Perl or for installing on each operating system are included with the distribution files. Follow the instructions provided and you should having a working Perl installation rather quickly. If you have trouble installing Perl, skip ahead to Chapter 22, "Internet Resources," connect to the #perl IRC channel, and ask for help. Don't be shy!

  Your First Perl Program

  Your first Perl program will show how to display a line of text on your monitor. First, you create a text file to hold the Perl program. Then you run or execute the Perl program file.

  Creating the Program

  A Perl program consists of an ordinary text file containing a series of Perl statements. Statements are written in what looks like an amalgam of C, UNIX shell script, and English. In fact, that's pretty much what it is. Perl code can be quite free-flowing. The broad syntactic rules governing where a statement starts and ends are:

  ●

  Leading spaces on a line are ignored. You can start a Perl statement anywhere you want: at the beginning of the line, indented for clarity (recommended) or even right-justified (definitely frowned on because the code would be difficult to understand) if you like.

  ● Statements are terminated with a semicolon. ●

  Spaces, tabs, and blank lines outside of strings are irrelevant-one space is as good as a hundred. That means you can split statements over several lines for clarity. A string is basically a series of characters enclosed in quotes.

Chapter 2 "Numeric and String Literals," contains a better definition for strings.

  ●

  Anything after a hash sign (#) is ignored except in strings. Use this fact to pepper your code with useful comments. Here's a Perl statement inspired by Kurt Vonnegut: print("My name is Yon Yonson\n"); No prizes for guessing what happens when Perl runs this code-it prints out My name is Yon Yonson. If the "\n" doesn't look familiar, don't worry-it simply means that Perl should print a newline character after the text, or in other words, go to the start of the next line. Printing more text is a matter of either stringing together statements like this, or giving multiple arguments to the print() function: print("My name is Yon Yonson,\n"); print("I live in Wisconsin,\n", "I work in a lumbermill there.\n");

  So what does a complete Perl program look like? Here's a small example, complete with the invocation line at the top and a few comments: #!/usr/local/bin/perl -w print("My name is Yon Yonson,\n"); print("I live in Wisconsin,\n", "I work in a lumbermill there.\n"); That's not at all typical of a Perl program, though; it's just a linear sequence of commands with no complexity.

  You can create your Perl program by starting any text processor: In UNIX-you can use emacs or vi.

  In Windows 95/Windows NT-you can use notepad or edit. In OS/2-you can use e or epm.

  Create a file called test.pl that contains the preceding three lines.

  Invocation

  Assuming that Perl is correctly installed and working on your system, the simplest way to run a Perl program is to type the following: perl filename.pl

  The filename should be replaced by the name of the program that you are trying to run or execute. If you created a test.pl file while reading the previous section, you can run it like this: perl test.pl This example assumes that perl is in the execution path; if not, you will need to supply the full path to perl, too. For example, on UNIX the command might be:

  /usr/local/bin/perl test.pl Whereas on Windows NT, you might need to use: c:\perl5\bin\perl test.pl UNIX systems have another way to invoke a program. However, you need to do two things. The first is to place a line like

  #!/usr/local/bin/perl at the start of the Perl file. This tells UNIX that the rest of this script file is to be run by /usr/local/bin/perl. The second step is to make the program file itself executable by changing its mode: chmod +x test.pl Now you can execute the program file directly and let the program file tell the operating system what interpreter to use while running it. The new command line is simply: test

  Comments in Your Program

  It is very important to place comments into your Perl programs. Comments will enable you to figure out the intent behind the mechanics of your program. For example, it is very easy to understand that your program adds 66 to another value. But, in two years, you may forget how you derived the number 66 in the first place. Comments are placed inside a program file using the # character. Everything after the # is ignored. For example: # This whole line is ignored. print("Perl is easy.\n"); # Here's a half-line comment.

  Summary

  You've finished the first chapter of the book and already written and executed a Perl program. Believe it or not, you've now done more than most people that I talk to on the web. Let's quickly review what you've read so far. Perl was created to solve a need, not to match the ideals of computer science. It has evolved from being a simple hack to a full-fledged modern programming language. Perl's syntax is similar to the C programming language. However, it has a lot of features that were borrowed from UNIX tools. Perl is very cost-effective in a lot of situations because it is free. There are legal restrictions that you need to follow. However, any restrictions are listed in the documentation that comes with Perl, and you don't need that information repeated. Web page. It has links to both the source code and the executables for Windows 95 and Windows NT.

  Perl programs are simply text files. They are created in any text editor. As long as you give the file an extension of .pl, running the file will be easy.

  Most systems will run Perl program file called test.pl with the following command: perl test.pl You can add comments to your Perl program using the # character. Anything after the # character is ignored. I hope the journey has been very smooth so far. The only difficulty may have been if you did not have Perl installed. The next part of the journey will be to learn some basic building blocks in the form of numeric and string literals. But literals will have to wait until the next chapter.

  Review Questions Answers to Review Questions are in Appendix A.

  1. What is the address of Perl's home page?

  2. Who was the creator of Perl?

  3. How much does Perl cost?

  4. Why are comments important to programming?

  Review Exercises 1. Connect to the Perl Home Page and spend a few minutes looking at the links.

  2. Create and run a Perl program that prints "Hello, World" on the monitor.

  Regular Expressions

CONTENTS

   ❍