Download presentation
Presentation is loading. Please wait.
1
CS 898N – Advanced World Wide Web Technologies Lecture 7: PERL Chin-Chih Chang chang@cs.twsu.edu
2
Perl - Elements The language elements of Perl fall into four categories: –Data types: scalars, arrays, and hash arrays –Statements –Regular expressions –File operations
3
Perl – Data Types The basic Perl data types are: –Scalar - $data –Array - @data –Hash array - %data –File handle – data Perl variable names are case and type sensitive.
4
Perl – Data Types (Scalar) The variable name must start with a letter and may contain any combination of letters, numbers, and the underscore _ character. $scalar - $string, $number, $array[$n], $hash_array{$n} Scalar variables are prefixed with the $ sign and include numeric and string types. Individual array elements are represented using the $ sign and index.
5
Perl – Data Types (Scalar) Numeric types are internally represented as double-precision floating-point. Numeric can be assigned as integers, fixed- point, or in floating-point notation. For example, 186282 can be written as 1.86282e5. String types are enclosed in either ‘single- quote pairs’ or “double-quote pairs”.
6
Perl – Data Types (Scalar) Strings in single quotes are true literals and use a backslash \ as an escape key, \’ as a single quote, double backslashes \\ as a backslash. Double-quoted strings support a Perl string replacement function called variable interpolation.
7
Perl – Data Types (Scalar) Any variable name found inside a double- quoted string will be replaced by the value of that variable. For example, the first two lines would result in the third line being printed: $name = “Larry Wall”; Print “The value of name is $name.”; The value of name is Larry Wall.
8
Perl – Data Types (Scalar) Variable interpolation can be avoided by breaking up the string into parts using the “.” string concatenation operator. For example, ‘The value of $name is ’. $name; # or ‘The value of $’. ”name is $name”; If a variable is used but not defined, a blank or 0 value is assigned.
9
Perl – Data Types (Scalar) If $name was not defined, the preceding statement would not result in an error but in an empty string as follows: The value of $name is Double-quoted strings support a full range of escaped characters including \\ (backslash), \” (double quote), \cX (any control character; e.g., control-x), \e (escape), \n (newline), \t (tab), and \xFF (any hexadecimal character).
10
Perl – Data Types (Array) The most common use of the escaped character is the newline in the print function. print “Hello World\n”; @array - @array A list (array) is a collection of scalar data in a specific order, and an array is a variable that holds a list. A list can contain both string and numeric values.
11
Perl – Data Types (Array) () represents an empty list with no elements. A list literal may be composed of a mixture of numeric and string values, scalar variables, ranges (..), and even other lists. In the following code, the quote word ( qw ) function is used to create arrays without typing quote-marks. @rgb = qw(red green blue) @cmy = qw(cyan magenta yellow)
12
Perl – Data Types (Array) The following array is formed from a list of two scalar literals and two arrays. @colors = (“black”, “white”, @rgb, @cmy); The list constructor operator “.. ” can be used to create an integral range of numeric values. @floors = (1..12,14..22); $x =.5; $y = 9.5;
13
Perl – Data Types (Array) @halfsizes = (.5..9.5); @halfsizes = ($x..$y); Perl is very flexible in how lists can be used on both sides of the equal sign. These statements are all valid ways to assign values: ($red, $green, $blue) = qw(red green blue); ($top, $bottom) = ($bottom, $top);
14
Perl – Data Types (Array) Array elements are referenced using the [] bracket pair, which may contain a literal, scalar variable, or expression. The following statement switches two array values by using two lists referencing the same array. ($name[$first],$name[$last])= ($name[$last],$name[$first]);
15
Perl – Data Types (Array) The following one accomplishes the switching by using a technique called slicing. A slice of the array is represented by using the format $array[element list]. @name[$first, $last] = @name[$last, $first]; @name[0, 2] = qw(Larry, Wall); The highest element of an array is represented by the $#array variable.
16
Perl – Data Types (Array) In Perl, the last element can be indexed by -1. $ants[$#ants] = “little one”; $ants[-1] = “little one”; Arrays can also be assigned to each other directly and by combing array slicing with array assignment.
17
Perl – Data Types (Hash Array) @array2 = @array1; @slicearray = (0, 2, 4, 6, 8); @array3 = @array2[@slicearray]; %hash_array - %hash_array A hash array is a list of string keys and values that are paired together. $ partridge = “a partridge in a pear tree” %christmas = ($patridge, 1, “turtule doves”, 2, “french hens”, 3);
18
Perl – Data Types (Hash Array) Individual hash array elements are assigned by using the string key in place of the element number. $christmas{“calling birds”} = 4; The following two lines should read and then restore the hash array with no changes. @twelve_days = %christmas; %christmas = @tweleve_days;
19
Perl – Data Types (Hash Array) The following line creates a new hash from three pairs converted from the @presents array. %favorites=@presents[6,7,15,16,17,18]; The following two lines copy hash arrays. %next_year = %christmas; %allpresents = (%mypresents, %yourpresents);
20
Perl – Data Types (Hash Array) Hash keys and values can be extracted separately using the keys and values functions. @presents = keys(%christmas); @days = values(%christmas); The defined() function returns a Boolean value based on whether the scalar or array element has had value assigned to it. if (defined(%presents(“new car”));
21
Perl – Statements (Operator) Perl supports an extended set of mathematical and string handling operators, and a standard set of comparison operators. –+-*/ : add, subtract, multiply, divide –** : exponentiation, e = m*c**2. –% : modulus, 10%3 = 1. –++ -- : auto- increment and decrement. –x : string replication, $test = test x 3. –. : string concatenation,
22
Perl – Statements (Operator) –.. : range, 1..5 = 1, 2, 3, 4, 5. –=~ : match. Used with regular expressions for string search and replacement, $val =~ tr/+/ /; –!~ : no match. –&& and || : logical AND and logical OR. Perl has separate comparison operators for numeric ( ==, !=,, >= ) and string ( eq, ne, lt, le, gt, ge ) variables: –Equals: ==, eq –Not equal: !=, ne
23
Perl – Statements (Operator) –Less than: <, lt –Less than or equal: <=, le –Greater than: >, gt –Greater than or equal: >=, ge String manipulation functions: –split() : Split returns a list of strings by split from a single string at the operator expression. $cgiinput = ‘http://sun.com’; @pairs = split (/:/, $cgiinput); $pairs[0] = “http”; $pairs[1] = “//sun.com”
24
Perl – Statements (String Manipulation) –join() : Join returns a single string from a list of strings joined together by the glue string. @statements = qw (Hello World Welcome); $string = join (“, ”, @statements); $string = “Hello, World, Welcome”; –sort() : It does an alphanumeric sort. –reverse() : It reverses the elements. @array = qw (Hello World Wide Web); @array1 = sort (@array);
25
Perl – Statements (Array Manipulation) @array2 = reverse (@array); @array1 = (‘Hello’, ‘Web’, ‘Wide’, ‘World’); @array2 = (‘Web’, ‘Wide’, ‘World’, ‘Hello’); There are four functions to add and remove array elements. –push() : It adds an element into the end of the array. –pop() : It removes an element from the end of the array.
26
Perl – Statements (Array Manipulation) –unshift() : It adds an element into the start of the array. –shift() : It removes an element from the start of the array. push (@saturn5, $stage3); $stage3 = pop (@saturn5); unshift (@shuttle, $booster); $booster = shift (@shuttle);
27
Perl – Statements (Hash Array Manipulation) Hash arrays have their own functions: –delete() : It is used to remove hash array elements. delete @nominees (“the avengers”); –each() : It provides easy looping through hash array pairs. while (($title, $star) = each (%movie)) { print “The star of $title is $star\n”; }
28
Perl – Statements (if) There are two types of if statements –if..else and elseif if (expression) {statements}; if (expression) {statements} else {statements}; if (expression) {statements} elseif {statements} else {statements}; –unless..else unless (expression) {statements};
29
Perl – Statements (if) unless (expression) {statements} –Perl supports the following extension: {statements} if (expression); {statements} unless (expression);
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.