Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report...
-
date post
22-Dec-2015 -
Category
Documents
-
view
219 -
download
3
Transcript of Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report...
![Page 1: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/1.jpg)
Perl BasicsPerl Basics
A Perl Tutorial
NLP Course - 2006
![Page 2: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/2.jpg)
What is Perl?What is Perl? Practical Extraction and Report Language Interpreted Language
Optimized for String Manipulation and File I/O Full support for Regular Expressions
![Page 3: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/3.jpg)
Running Perl ScriptsRunning Perl Scripts Windows
Download ActivePerl from ActiveState Just run the script from a 'Command Prompt'
window UNIX – Cygwin
Put the following in the first line of your script#!/usr/bin/perl
Run the script% perl script_name
![Page 4: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/4.jpg)
Basic SyntaxBasic Syntax Statements end with semicolon ‘;’ Comments start with ‘#’
Only single line comments Variables
You don’t have to declare a variable before you access it
You don't have to declare a variable's type
![Page 5: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/5.jpg)
Scalars and IdentifiersScalars and Identifiers Identifiers
A variable name Case sensitive
Scalar A single value (string or numerical) Accessed by prefixing an identifier with '$' Assignment with '='
$scalar = expression
![Page 6: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/6.jpg)
StringsStrings Quoting Strings
With ' (apostrophe) Everything is interpreted literally
With " (double quotes) Variables get expanded
With ` (backtick) The text is executed as a separate process, and
the output of the command is returned as the value of the string
Check 01_printDate.pl
![Page 7: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/7.jpg)
String Operation Arithmetic
lt less than <
gt greater than >
eq equal to ==
le less than or equal to <=
ge greater than or equal to >=
ne not equal to !=
cmp compare, return 1, 0, -1 <=>
Comparison OperatorsComparison Operators
![Page 8: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/8.jpg)
Operator Operation
||, or logical or
&&, and logical and
!, not logical not
xor logical xor
Logical OperatorsLogical Operators
![Page 9: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/9.jpg)
Operator Operation
. string concatenation
x string repetition
.= concatenation and assignment
$string1 = "potato";
$string2 = "head";
$newstring = $string1 . $string2; #"potatohead"
$newerstring = $string1 x 2; #"potatopotato"
$string1 .= $string2; #"potatohead"
String OperatorsString Operators
Check concat_input.pl
![Page 10: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/10.jpg)
Perl FunctionsPerl Functions Perl functions are identified by their unique names
(print, chop, close, etc) Function arguments are supplied as a comma
separated list in parenthesis. The commas are necessary The parentheses are often not Be careful! You can write some nasty and unreadable
code this way!
Check 02_unreadable.pl
![Page 11: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/11.jpg)
ListsLists Ordered collection of scalars
Zero indexed (first item in position '0') Elements addressed by their positions
List Operators (): list constructor , : element separator []: take slices (single or multiple element chunks)
![Page 12: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/12.jpg)
List OperationsList Operations sort(LIST)
a new list, the sorted version of LIST reverse(LIST)
a new list, the reverse of LIST join(EXPR, LIST)
a string version of LIST, delimited by EXPR split(PATTERN, EXPR)
create a list from each of the portions of EXPR that match PATTERN
Check 03_listOps.pl
![Page 13: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/13.jpg)
ArraysArrays A named list
Dynamically allocated, can be saved Zero-indexed Shares list operations, and adds to them
Array Operators @: reference to the array (or a portion of it, with []) $: reference to an element (used with [])
![Page 14: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/14.jpg)
Array OperationsArray Operations push(@ARRAY, LIST)
add the LIST to the end of the @ARRAY pop(@ARRAY)
remove and return the last element of @ARRAY unshift(@ARRAY, LIST)
add the LIST to the front of @ARRAY shift(@ARRAY)
remove and return the first element of @ARRAY scalar(@ARRAY)
return the number of elements in the @ARRAY
Check 04_arrayOps.pl
![Page 15: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/15.jpg)
Associative Arrays - HashesAssociative Arrays - Hashes Arrays indexed on arbitrary string values
Key-Value pairs Use the "Key" to find the element that has the
"Value" Hash Operators
% : refers to the hash {}: denotes the key $ : the value of the element indexed by the key (used
with {})
![Page 16: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/16.jpg)
Hash OperationsHash Operations keys(%ARRAY)
return a list of all the keys in the %ARRAY values(%ARRAY)
return a list of all the values in the %ARRAY each(%ARRAY)
iterates through the key-value pairs of the %ARRAY delete($ARRAY{KEY})
removes the key-value pair associated with {KEY} from the ARRAY
![Page 17: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/17.jpg)
Arrays ExampleArrays Example#!/usr/bin/perl # Simple List operations
# Address an element in the list@stringInstruments =
("violin","viola","cello","bass"); @brass =
("trumpet","horn","trombone","euphonium","tuba");
$biggestInstrument = $stringInstruments[3];
print("The biggest instrument: ", $biggestInstrument);
# Join elements at positions 0, 1, 2 and 4 into a white-space delimited string
print("orchestral brass: ", join(" ",@brass[0,1,2,4]), "\n");
@unsorted_num = ('3','5','2','1','4');@sorted_num = sort( @unsorted_num );
# Sort the listprint("Numbers (Sorted, 1-5): ", @sorted_num, "\n");
#Add a few more numbers@numbers_10 = @sorted_num;push(@numbers_10, ('6','7','8','9','10'));print("Numbers (1-10): ", @numbers_10, "\n"); # Remove the lastprint("Numbers (1-9): ", pop(@numbers_10), "\n"); # Remove the firstprint("Numbers (2-9): ", shift(@numbers_10), "\n"); # Combine two opsprint("Count elements (2-9): ",
$#@numbers_10;# scalar( @numbers_10 ), "\n"); print("What's left (numbers 2-9): ",
@numbers_10, "\n");
![Page 18: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/18.jpg)
Hashes ExampleHashes Example#!/usr/bin/perl # Simple List operations
$player{"clarinet"} = "Susan Bartlett"; $player{"basson"} = "Andrew Vandesteeg"; $player{"flute"} = "Heidi Lawson"; $player{"oboe"} = "Jeanine Hassel"; @woodwinds = keys(%player); @woodwindPlayers = values(%player);
# Who plays the oboe?print("Oboe: ", $player{'oboe'}, "\n");
$playerCount = scalar(@woodwindPlayers);
while (($instrument, $name) = each(%player)){
print( "$name plays the $instrument\n" );}
![Page 19: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/19.jpg)
Pattern MatchingPattern Matching A pattern is a sequence of characters to be
searched for in a character string /pattern/
Match operators =~: tests whether a pattern is matched !~: tests whether patterns is not matched
![Page 20: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/20.jpg)
Pattern Matches Pattern Matches
/def/ "define" /d.f/ dif
/\bdef\b/ a def word /d.+f/ dabcf
/^def/ def in start of line
/d.*f/ df, daffff
/^def$/ def line /de{1,3}f/ deef, deeef
/de?f/ df, def /de{3}f/ deeef
/d[eE]f/ def, dEf /de{3,}f/ deeeeef
/d[^eE]f/ daf, dzf /de{0,3}f/ up to deeef
PatternsPatterns
![Page 21: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/21.jpg)
Character RangesCharacter RangesEscape
SequencePattern Description
\d [0-9] Any digit
\D [^0-9] Anything but a digit
\w [_0-9A-Za-z] Any word character
\W [^_0-9A-Za-z] Anything but a word char
\s [ \r\t\n\f] White-space
\S [^\r\t\n\f] Anything but white-space
![Page 22: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/22.jpg)
BackreferencesBackreferences Memorize the matched portion of inputUse of parentheses.
/[a-z]+(.)[a-z]+\1[a-z]+/ asd-eeed-sdsa, sd-sss-ws NOT as_eee-dfg
They can even be accessed immediately after the pattern is matched \1 in the previous pattern is what is matched by (.)
![Page 23: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/23.jpg)
Pattern Matching OptionsPattern Matching Options
Escape Sequence
Description
g Match all possible patterns
i Ignore case
x Ignore white-space in pattern
![Page 24: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/24.jpg)
SubstitutionsSubstitutions Substitution operator
s/pattern/substitution/options If $string = "abc123def";
$string =~ s/123/456/
Result: "abc456def" $string =~ s/123//
Result: "abcdef" $string =~ s/(\d+)/[$1]/
Result: "abc[123]def“ Use of backreference!
![Page 25: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/25.jpg)
Predefined Read-only VariablesPredefined Read-only Variables$& is the part of the string that matched the regular expression
$` is the part of the string before the part that matched
$' is the part of the string after the part that matched
EXAMPLEEXAMPLE$_ = "this is a sample string";/sa.*le/; # matches "sample" within the string# $` is now "this is a "# $& is now "sample"# $' is now " string"Because these variables are set on each successful match, you should save the values elsewhere if youneed them later in the program.
![Page 26: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/26.jpg)
The split and join FunctionsThe split and join FunctionsThe split function takes a regular expression and a string, and looks for all occurrences of the regular expression within that string. The parts of the string that don't match the regular expression are returned in sequence as a list of values.
The join function takes a list of values and glues them together with a glue string between each list element.
Split ExampleSplit Example Join ExampleJoin Example
$line = "merlyn::118:10:Randal:/home/merlyn:/usr/bin/perl";@fields = split(/:/,$line); # split $line, using : as delimiter# now @fields is ("merlyn","","118","10","Randal",# "/home/merlyn","/usr/bin/perl")
$bigstring = join($glue,@list);
For example to rebuilt the password file try something like:$outline = join(":", @fields);
![Page 27: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/27.jpg)
String - Pattern ExamplesString - Pattern ExamplesA simple Example
#!/usr/bin/perlprint ("Ask me a question politely:\n");
$question = <STDIN>;
# what about capital P in "please"?if ($question =~ /please/){
print ("Thank you for being polite!\n");}else{
print ("That was not very polite!\n");}
![Page 28: Perl Basics A Perl Tutorial NLP Course - 2006. What is Perl? Practical Extraction and Report Language Interpreted Language Optimized for String Manipulation.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d775503460f94a59911/html5/thumbnails/28.jpg)
String – Pattern ExampleString – Pattern Example#!/usr/bin/perlprint ("Enter a variable name:\n");$varname = <STDIN>;chop ($varname);# Try asd$asdas... It gets accepted!if ($varname =~ /\$[A-Za-z][_0-9a-zA-Z]*/) {
print ("$varname is a legal scalar variable\n");}elsif ($varname =~ /@[A-Za-z][_0-9a-zA-Z]*/) {
print ("$varname is a legal array variable\n");}elsif ($varname =~ /[A-Za-z][_0-9a-zA-Z]*/){
print ("$varname is a legal file variable\n");}else{
print ("I don't understand what $varname is.\n");}