16
Introducti on to Perl Software Tools

Introduction to Perl

Embed Size (px)

DESCRIPTION

Software Tools. Introduction to Perl. Introduction to Perl. Perl is a scripting language that makes manipulation of text, files, and processes easy. Perl is a cross between shell programming and the C programming language. Smalltalk (objects). C (numbers). Shell programming - PowerPoint PPT Presentation

Citation preview

Page 1: Introduction to Perl

Introduction to Perl

Software Tools

Page 2: Introduction to Perl

Slide 2

Introduction to Perl Perl is a scripting language that makes

manipulation of text, files, and processes easy. Perl is a cross between shell programming and the

C programming language.

C

(numbers)

Shell programming

(text)

Smalltalk

(objects)

C++

(numbers, objects)

Perl

(text, numbers)

Java

(objects)

Page 3: Introduction to Perl

Slide 3

Introduction to Perl Perl provides a more concise and readable way to

do many tasks compared to C++ and shell scripts. Perl has replaced shell programming as the most

popular programming language for text processing and Unix system administration.

Perl was originally designed under Unix, but now also runs under all operating systems (including Windows).

Perl is also a popular language for CGI and GUI programming.

Page 4: Introduction to Perl

Slide 4

Introduction to Perl The perl command on our system automatically invokes

Perl 5.0. Some systems use Perl 4.0 as the default, but you also

can run a perl 5.0 script explicitly with perl5:$ cat simple$ perl5 simple$

You can run the script directly if you make the script executable, and the first line is of the following form ( #!/usr/... must start from the first column):

$ chmod +x simple$ cat simple#!/usr/local/bin/perl5 -w$ simple$

Page 5: Introduction to Perl

Slide 5

Basic Syntax The -w option tells Perl to produce extra

warning messages about potential dangers. Use -w in all your Perl programs for now.

#!/usr/local/bin/perl5 -w

Whitespace doesn't matter in Perl (like C++), except for #!/usr/local/bin/perl5 -w which must start from column 1 on line 1.

Page 6: Introduction to Perl

Slide 6

Basic Syntax All perl statements end in a semicolon ;

(like C++)

In Perl, comments begin with # (like shell scripts) everything after the # to the end of the line is

ignored. # need not be at the beginning of the line. there are no C++-like multiline comments: /* */

Page 7: Introduction to Perl

Slide 7

Perl Example 1

Here is a “hello world” Perl program: $ ls -l

-rwxr-xr-x 1 horner cs 52 Mar 2 15:50 hello*

$ cat hello

#!/usr/local/bin/perl5 -w

# comment lines start with the # character

print "Hello world\n";

$ hello

Hello world

$

The print command sends the string to the screen, and “\n“ adds a newline.

Page 8: Introduction to Perl

Slide 8

Perl Example 1

You can optionally use parenthesis around the argument in print:

print ("Hello world\n");

or, if your prefer the C++ function style:

print("Hello world\n");

Page 9: Introduction to Perl

Slide 9

Scalar Variables A scalar variable can hold a single number or string

(like shell variables), including integers and floating-point numbers (unlike shell variables).

Scalar variables begin with “$” followed by a letter, and then possibly more letters, digits, or underscores. (e.g., $n, $n1, $name, $first_name).

Scalar variables are case sensitive.

Page 10: Introduction to Perl

Slide 10

Assigning Scalar Variables

Scalars are assigned using “=“ $scalar = expression;

To assign a value to a scalar variable:$number = 25;$name = "Bill Gates";

Unlike shell scripts, use the “$” both when the variable is used and assigned:

$ cat test1#!/usr/local/bin/perl5 -w $number = 25;$name = "Bill Gates";print "$number $name\n";$ test125 Bill Gates

$

Page 11: Introduction to Perl

Slide 11

Numerical Scalar Variables

Internally, all numerical scalar values are stored as floats (so you don’t have to worry about integer division in Perl like you do in C++).

Perl supports the usual C++ numerical operations:$a = 25; # $a is now 25

$a += 5; # $a is now 30

$a *= 3; # $a is now 90

$a++; # $a is now 91

--$a; # $a is now 90

$result = ($a + 2) * 3.4; # $result is 312.8

Page 12: Introduction to Perl

Slide 12

User Input Use <STDIN> to get input from the user:

$ cat test2#!/usr/local/bin/perl5 -w print "Enter name: ";$name = <STDIN>;chomp ($name);print "How many girlfriends do you have? ";

$number = <STDIN>;chomp($number);print "$name has $number girlfriends!\n";$ test2Enter name: Bill GatesHow many girlfriends do you have? more than

youBill Gates has more than you girlfriends!

Page 13: Introduction to Perl

Slide 13

User Input

<STDIN> grabs one line of input, including the newline character. So, after:

$name = <STDIN>;

if the user typed “Bill Gates[ENTER]”, $name will contain: “Bill Gates\n”.

To delete the newline, the chomp() function takes a scalar variable, and removes the trailing newline if present. (If there is no newline at the end, it does nothing.)

A shortcut to do both operations in one line is:chomp($name = <STDIN>);

Page 14: Introduction to Perl

Slide 14

$

As with the shell scripts, use a backslash before $ if you really want to print the dollar sign:

$ cat test4#!/usr/local/bin/perl5 -w

print "Enter amount: ";

$cost = <STDIN>;

print "The total is: \$$cost";

$ test4

Enter amount: 18.50

The total is $18.50

No need to use chomp() if the newline on $cost can be used when it is printed.

Page 15: Introduction to Perl

Slide 15

Numerical Example $ cat test6#!/usr/local/bin/perl5 -wprint "Enter height of rectangle: ";$height = <STDIN>;print "Enter width of rectangle: ";$width = <STDIN>;$area = $height * $width;print "The area of the rectangle is $area\n";$ test6Enter height of rectangle: 10Enter width of rectangle: 5The area of the ractangle is 50$ test6Enter height of rectangle: 10.1Enter width of rectangle: 5.1The area of the rectangle is 51.51

Page 16: Introduction to Perl

Slide 16

Backquotes:Command Substitution

You can use command substitution in Perl like in shell scripts:

$ whoami gates$ cat test7#!/usr/local/bin/perl5 -w$user = `whoami`;chomp($user);$num = `who | wc -l`;chomp($num);print "Hi $user! There are $num users logged on.\n";$ test7Hi gates! There are 6 users logged on.

Command substitution will usually include a newline, so use chomp().