mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-11-26 20:34:32 +03:00
3.2 KiB
3.2 KiB
name | category | language | filename | contributors | |||
---|---|---|---|---|---|---|---|
perl | language | perl | learnperl.pl |
|
Perl 5 is a highly capable, feature-rich programming language with over 25 years of development.
Perl 5 runs on over 100 platforms from portables to mainframes and is suitable for both rapid prototyping and large scale development projects.
# Single line comments start with a hash.
/*
Multi-line comments look like this.
*/
#### Perl variable types
# Variables begin with the $ symbol.
# A valid variable name starts with a letter or underscore,
# followed by any number of letters, numbers, or underscores.
### Perl has three main variable types: scalars, arrays, and hashes.
## Scalars
# A scalar represents a single value:
my $animal = "camel";
my $answer = 42;
# Scalar values can be strings, integers or floating point numbers, and Perl will automatically convert between them as required.
## Arrays
# An array represents a list of values:
my @animals = ("camel", "llama", "owl");
my @numbers = (23, 42, 69);
my @mixed = ("camel", 42, 1.23);
## Hashes
# A hash represents a set of key/value pairs:
my %fruit_color = ("apple", "red", "banana", "yellow");
# You can use whitespace and the "=>" operator to lay them out more nicely:
my %fruit_color = (
apple => "red",
banana => "yellow",
);
# Scalars, arrays and hashes are documented more fully in perldata. (perldoc perldata).
# More complex data types can be constructed using references, which allow you to build lists and hashes within lists and hashes.
#### Conditional and looping constructs
# Perl has most of the usual conditional and looping constructs.
if ( $var ) {
...
} elsif ( $var eq 'bar' ) {
...
} else {
...
}
unless ( condition ) {
...
}
# This is provided as a more readable version of "if (!condition)"
# the Perlish post-condition way
print "Yow!" if $zippy;
print "We have no bananas" unless $bananas;
# while
while ( condition ) {
...
}
# for and foreach
for ($i = 0; $i <= $max; $i++) {
...
}
foreach (@array) {
print "This element is $_\n";
}
#### Regular expressions
# Perl's regular expression support is both broad and deep, and is the subject of lengthy documentation in perlrequick, perlretut, and elsewhere. However, in short:
# Simple matching
if (/foo/) { ... } # true if $_ contains "foo"
if ($a =~ /foo/) { ... } # true if $a contains "foo"
# Simple substitution
$a =~ s/foo/bar/; # replaces foo with bar in $a
$a =~ s/foo/bar/g; # replaces ALL INSTANCES of foo with bar in $a
Using Perl modules
Perl modules provide a range of features to help you avoid reinventing the wheel, and can be downloaded from CPAN ( http://www.cpan.org/ ). A number of popular modules are included with the Perl distribution itself.
perlfaq contains questions and answers related to many common tasks, and often provides suggestions for good CPAN modules to use.
Further Reading
Learn at www.perl.com and perldoc perlintro