Download presentation
Presentation is loading. Please wait.
1
Programming with Perl CSCE 330 Group presentation by: Robert Shannon Robert Shannon Ryan Mullaney Ryan Mullaney Anthony So Anthony So
2
What is Perl? Started in 1987 by Larry Wall Practical Extraction and Reporting Language Originally developed as a utility for UNIX to replace awk Currently used as replacement for awk, sed, grep, shell scripts, C… May be referenced as scripting or programming language depending on the source
3
Features Why should I learn Perl? Similar syntax to C therefore familiar to most programmers Extremely expressive so a few lines of code will do a lot Typical uses: (Common Gate-way Interface) – the interaction between the browser & server World Wide Web through CGI libraries (Common Gate-way Interface) – the interaction between the browser & server ActiveX scripting Processing log files Windows network administration
4
Timeline 1987 - Oct - Perl 1.0 is released 1988 - Jun - Perl 2.0 is released 1989 - Oct - Perl 3.0 is released 1991 - Mar - Perl 4.0 is released 1992 - Jan - MacPerl 4.0.2 is released 1992 - Dec - MacPerl 4.0.5 is released 1993 - Feb - Perl 4.036 is released 1993 - Oct - MacPerl 4.1.0 is released
5
Timeline continued 1994 - Oct - Perl 5.000 is released 1995 - Mar - Perl 5.001 is released 1995 - Aug - MacPerl 5.0.0 is released 1996 - Jul - Perl 6 announced 2000 - Mar - Perl 5.6 is released Presently - Perl 6 is still in work
6
Advantages Perl is compiled every time it is executed This allows for easy modifications and portability Unlike interpretive languages Perl must completely compile before any of it runs This saves many headaches from partially changed text files A few lines of Perl can do what it would take a complicated C language program to do. Many built in functions that save time
7
Disadvantages Perl is compiled each time it is executed Since any one can look at your script and change it there is the issue of security Limited support for data hiding when dealing with classes. There are no warnings when variables are coerced between types. Example: $scalar=@array; Because of this finding logic errors can be hard Perl offers a number of ways to do the same thing, some more efficient than others, therefore a badly written Perl script can monopolize system resources.
8
Syntactical conventions CHARTYPEEXAMPLEEXPLANATION #Comment # Yada Rest of the line is a comment $Scalar$price Variable with single value @Array@prices Array of values (indexed by integers) %Hash%grades Group of values (indexed by strings) <>Handle<STDIN> In- & output for files &Subroutine&doit Executable (Perl-) function
9
Single or Double Quotes Single quotes are literal. They will pass on exactly what is inside of them. $myname="David"; print 'Hello World! My name is $myname'; RESULTS : Hello World! My name is $myname Double quotes variables are interpolated and analyzed for values $myname="David"; print "Hello World! My name is $myname"; RESULTS: Hello World! My name is David
10
Scalars A scalar is an individual piece of data. In Java it would be the same as a variable. Scalar data is symbolized by a $ sign. For correct processing, the $ must be followed by a letter (non-numeric) character. Scalar names are CaSe SeNsItIvE. $A is different than $a. Can use up to 255 characters for a scalar name which includes numbers, letters, and underscores.
11
Scalars continued $answer = 42; # Interger $pi = 3.14159; # Floating point $pet = “Camel”;# string $msg = “I love $pet”; # interpolated string $cost = ‘I costs $100’; # not interpolated $idea = ‘Don\’t do it’; # not interpolated $dst = $src; # Copy variables $x = $y + 5; # expression
12
Scalar Example $a=5; # a contains value of 5 $b=2.5; # b contains value of 2.5 $a=$b + $a; # a now contains value of 7.5 OR OR $mymessage="Hello World!"; print $mymessage; $mymessage="Bye World!"; print $mymessage; # symbol signifies a comment in the code
13
Arrays Arrays are groups of data stored in a single spot. While scalar data use the $ sign, arrays use the @ symbol. Example: #!/usr/bin/perl@days=("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"); print "Content-type: text/html\n\n"; print "These are the days of the week: "; print "@days"; Results: These are the days of the week: Monday Tuesday Wednesday Thursday Friday Saturday Sunday
14
Array continued What about accessing an individual array item? print "The value for the fourth array item is $days[3]"; Notice the use of $ and not @ in this instance. Therefore the breakdown of: @days = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"); Is: $days[0] = "Monday"; $days[1] = "Tuesday"; $days[2] = "Wednesday"; $days[3] = "Thursday"; $days[4] = "Friday"; $days[5] = "Saturday"; $days[6] = "Sunday";
15
Hashes Hashes are very similar to an arrays. A hash is an array of pairs often called an "associative array". A hash uses the % symbol instead of the @ symbol. Arrays use 0 to whatever number as an index. Hashes are keys and value pairs. key, element, key, element, and so on... Hashes use the curly brackets {} instead of the square brackets [] to find individual elements.
16
Hash Example %chores = ("Monday", "dishes", "Tuesday", "vacuum", "Wednesday", "garbage"); $value = $chores{Wednesday}; print "$value"; The output of the example script is garbage
17
Comparison to C C: Void main() { printf(“Hello World!”); }Perl: print ‘Hello World!’
18
Example of Perl in Action #!c:\perl\bin\perl.exe -w my ($dir); $dir = "."; opendir(DIR, "$dir") || Error("open", "directory"); my @dirfiles = readdir(DIR); closedir(DIR) || Error("close", "directory"); ren(@dirfiles);
19
sub ren { my ($old_name, $regex, $repstr, @files); @files = @_; $regex = "\.old\$"; $repstr = ".new"; foreach (@files){ $old_name = $_; $_ =~ s/$regex/$repstr/i; rename($old_name, $_); }} sub Error { print "The server can't $_[0] the $_[1]: $! \n"; }
20
Sources http://www.perl.com/pub/a/2000/10/begperl1.html http://www.perl.com/pub/a/2000/10/begperl1.html http://www.linuxjournal.com/article.php?sid=3394 http://www.linuxjournal.com/article.php?sid=3394 http://www.htmlite.com/PERLintro.php http://www.htmlite.com/PERLintro.php http://www.perl.org/press/fast_facts.html http://www.perl.org/press/fast_facts.html http://history.perl.org/PerlTimeline.html http://history.perl.org/PerlTimeline.html http://www.Planet-Source-Code.com http://www.Planet-Source-Code.com
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.