Presentation is loading. Please wait.

Presentation is loading. Please wait.

Perl Practical Extraction and Report Language

Similar presentations


Presentation on theme: "Perl Practical Extraction and Report Language"— Presentation transcript:

1 Perl Practical Extraction and Report Language
Shell-level scripting language: Glue that ties together programs written in other languages. Perl: Developed by Larry Wall in the late 1980s. Builds on... sh awk sed c CSE S. Tanimoto Perl Introduction

2 CSE 341 -- S. Tanimoto Perl Introduction
Perl and the Web One-pass compilation means Perl programs can be efficiently compiled on demand. Perl makes it easy to process text (and generate HTML!). With contributed modules in the CPAN library, Perl has become a defacto standard for CGI programming on the Web, esp. on Unix servers. CSE S. Tanimoto Perl Introduction

3 CSE 341 -- S. Tanimoto Perl Introduction
Perl vs Java Server vs Client... Input info may be too sensitive to send over the net to an applet. Applet downloading and startup cause high latency. No special browser plugins are needed, since Perl doesn’t run in the browser. CSE S. Tanimoto Perl Introduction

4 Perl has a “Little Language” philosophy
Small numbers of variables means less concern about name conflicts... declarations not required. Perl grows out of a systems-programming context. Conciseness was valued over transparency. The meanings of language features are often dependent on context (e.g., list context vs scalar context). One system may consist of many Perl scripts. CSE S. Tanimoto Perl Introduction

5 Comments on the Book by Sebesta
A Little Book on Perl, by Robert W. Sebesta is a recent book (2000). It covers Perl (Perl 5.6 has since come out, but Sebesta's book is generally consistent with it.) The book is clearly written and covers the right stuff. Sebesta is the author of a popular text on programming languages. CSE S. Tanimoto Perl Introduction

6 CSE 341 -- S. Tanimoto Perl Introduction
Running a Perl Program #!/usr/bin/perl print("Out of the oyster!\n"); # comment Make sure the file is executable: chmod +x howdy.pl Run the program from the command line: ./howdy.pl CSE S. Tanimoto Perl Introduction

7 A Perl Script for the Web
#!/usr/bin/perl print "Content-type: text/html\n\n"; $now = localtime(); print "<html><body>"; print "<h2>The time is $now\n"; print " </h2></body></html>"; CSE S. Tanimoto Perl Introduction

8 CSE 341 -- S. Tanimoto Perl Introduction
Online help perldoc perl (overview) perldoc perlfaq (freq. asked questions) perldoc perldata (data structures) perldoc perlsyn (syntax) perldoc perlop (operators and precedence) perldoc perlre (regular expressions) perldoc perlrun (execution and options) perldoc -f split (info on a function) CSE S. Tanimoto Perl Introduction

9 The Fundamental Data Types
$n = 25; # a numeric scalar $str = "Here is a string"; print('The value of $n is ' . $n); # Note strings with ' ' do not have # variable "interpolation" performed # But strings with " " DO have it. print("The value is $n."); CSE S. Tanimoto Perl Introduction

10 CSE 341 -- S. Tanimoto Perl Introduction
String Operations "string1" . "string2" # concatenation Can also be done using interpolation: $str1 = "abc"; $str2 = "def"; $newstr = "$str1$str2"; CSE S. Tanimoto Perl Introduction

11 Support for processing text: Immediate, embedded (“Here”) Documents
print << "END-OF-PRINT"; Hello there. This is a two-line immediate text doc. END-OF-PRINT CSE S. Tanimoto Perl Introduction

12 Choice of Interpolating or Not
$dollars = 64000; print <<”EOT”; The $dollars question. Are $dollars printed out here? EOT CSE S. Tanimoto Perl Introduction

13 Choice of Interpolating or Not
$dollars = 64000; print <<’EOT’; The $64000 question. Are $dollars printed out here? EOT CSE S. Tanimoto Perl Introduction

14 CSE 341 -- S. Tanimoto Perl Introduction
Interpolation -- Not The $64000 question. Are $dollars printed out here? CSE S. Tanimoto Perl Introduction

15 CSE 341 -- S. Tanimoto Perl Introduction
Arrays @trees = ("Oak", "Maple", "Madrona"); @moretrees = qw(pine alter hemlock); @ages = (75, 50.5, "twenty"); $mytree = $trees[1]; # "Maple" CSE S. Tanimoto Perl Introduction

16 Hashes (Associative Arrays)
$foodtype{"Spaghetti"} = "Italian"; $thetype = $foodtype{"Spaghetti"}; foreach $food (keys %foodtype) { $thetype = $foodtype{$food}; print "Food $food is $thetype\n"; } CSE S. Tanimoto Perl Introduction

17 Quick Example of CGI Processing: The HTML Form
<html><body> <form method=post action=" Type your user name: <input type=text name=username size=20> <input type=submit value="Click here"> </form> </body></html> CSE S. Tanimoto Perl Introduction

18 CGI Processing: The Perl Script
#!/usr/bin/perl use CGI qw/:standard/; $theName = param("username"); print "Content-type: text/html\n\n"; print " <html><body><h2>"; print " Your user name is $theName"; print "</h2></body></html>"; CSE S. Tanimoto Perl Introduction


Download ppt "Perl Practical Extraction and Report Language"

Similar presentations


Ads by Google