Beruflich Dokumente
Kultur Dokumente
Topics
Getting Started
scalars
lists and arrays
hashes
I/O
File handles
regular expressions
Hello, World!
#!/usr/bin/perl
print "Hello, World!\n";
#!/usr/bin/perl
@lines = `perldoc -u -f atan2`;
foreach (@lines) {
s/(\w)<([^>]+)>/$1<\U$2>/g;
print;
}
Getting Help
man perl
perldoc
Learning Perl
Programming Perl
www.cpan.org, www.pm.org,
www.perlmonks.org
scalars
operators
numbers
2+3, 5.1-2.4, 3 * 12, 14/2, 10/3
==, !=, <, >, <=, >=
strings
concatenation: str1 . str2
replication: str x num
eq, ne, lt, gt, le, ge
print
single vs. double quotes
$firstname flinstone
$firstname flinstone
Conditionals
Boolean value (any scalar value)
false: undef, 0, , 0
true: everything else
$count = 10;
if ($count > 0) {
print $count, \n;
$count -= 1;
} else {
print blast off\n;
}
Loops
$count =10;
while ($count > 0) {
print $count, \n;
$count -= 1;
}
print blast off\n;
Exercise 2.1
Write a program that computes the
circumference of a circle with radius 12.5.
Use $pi = 3.141592654
Exercise 2.2
Modify the previous program to prompt and
read the radius
Exercise 2.3
Modify the previous program so that if the
radius is less than zero, the circumference is
set to zero.
Exercise 2.4
Write a program that prompts for and reads
two numbers, on separate lines, and prints
their product.
Exercise 2.5
Write a program that prompts for and reads
a string and a number (on separate lines)
and prints the string the number of times
indicated by the number (on separate lines).
Used interchangeably
List variables @name
List literals (fred,2,3)
@primes = (2,3,5,7,11,13,17)
@range = 1..10
Accessing elements: $primes[3]
Length of a list: $#primes
List assignment: ($p1, $p2, $p3) = (2,3,5)
List Operators
@array = 1..5;
The pop operator removes the last element of a list
$last = pop(@array);
@array = (1,2,3,4); $last=5
List Operators
@array = 1..5;
The shift operator removes the first element of a
list
$first = shift(@array);
$first = 1; @array = (2,3,4,5)
List Operators
@array = 1..5;
The reverse operator reverses the elements
of a list
@rarray = reverse(@array);
Reading Lines
#!/usr/bin/perl
chomp(@lines = <STDIN>); # read lines, not newlines
foreach $line (@lines) {
print "$line\n";
}
Exercise 3.1
Write a program that reads a list of strings
on separate lines until end-of-input and
prints the list in reverse order.
Exercise 3.2
Write a program that reads a list of numbers
on separate lines until end-of-input and then
prints for each number the corresponding
persons name from the list
fred betty barney dino wilma pebbles bammbamm
Exercise 3.3
Write a program that reads a list of strings
on separate lines until the end-of-input.
Then it should print the strings in
alphabetical order.
Hashes
An array that can be indexed by arbitrary
strings
$family_name{fred} = flintstone;
$family_name{barney} = rubble;
foreach $person in keys( %family_name ) {
print Full name = $family_name{$person}\n;
}
Hashes
The hash as a whole is referred to by a
variable whose name starts with %
%hash = (barney, rubble, fred,
flinstone);
%hash =(barney => rubble,
Hashes
To obtain the keys in a hash
@first_names = keys(%hash);
Exercise 5.1
Write a program that will ask the user for a
given name and report the corresponding
family name.
Exercise 5.2
Write a program that reads a series of words
(with one word per line) until end-of-input,
then prints a summary of how many times
each word was seen.