Learn Perl in Y minutes

转载 2013年12月04日 18:35:54

zz: http://learnxinyminutes.com/docs/perl/


Learn X in Y minutes

Where X=perl

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.


#### 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


#### Files and I/O

# You can open a file for input or output using the "open()" function.

open(my $in,  "<",  "input.txt")  or die "Can't open input.txt: $!";
open(my $out, ">",  "output.txt") or die "Can't open output.txt: $!";
open(my $log, ">>", "my.log")     or die "Can't open my.log: $!";

# You can read from an open filehandle using the "<>" operator.  In scalar context it reads a single line from
# the filehandle, and in list context it reads the whole file in, assigning each line to an element of the list:

my $line  = <$in>;
my @lines = <$in>;

#### Writing subroutines

# Writing subroutines is easy:

sub logger {
    my $logmessage = shift;
    open my $logfile, ">>", "my.log" or die "Could not open my.log: $!";
    print $logfile $logmessage;
}

# Now we can use the subroutine just as any other built-in function:

logger("We have a logger subroutine!");

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 clojure in Y minutes

Learn X in Y minutes Where X=clojure Get the code: learnclojure.clj Clojure is a Lisp family l...

What can I learn right now in just 10 minutes that could be useful for the rest of my life?

What can I learn right now in just 10 minutes that could be useful for the rest of my life?

Learn HTML5 in 5 Minutes!

There’s no question, HTML5 is a hot topic for developers. If you need a crash course to quickly unde...

Lua 15 分钟快速入门(Learn Lua in 15 Minutes)

原文出处: tylerneylon-- 单行注释 --[[ [多行注释] --]]变量 & 控制流num = 23 -- 数字都是双精度 str = 'aspythonstring' -- 像...
  • sdfsdr
  • sdfsdr
  • 2016年04月27日 09:45
  • 354

Learn Lua in 15 Minutes 整理

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1...

Learn Lua in 15 Minutes

Learn Lua in 15 Minutes

Learn Perl in a Weekend

  • 2008年10月06日 14:28
  • 7.49MB
  • 下载

Premier Press - Learn Perl in a Weekend

  • 2008年12月03日 23:05
  • 3.69MB
  • 下载

Maven in 5 Minutes(5分钟学会使用Maven)

Prerequisites(预备知识) You must have an understanding of how to install software on your computer. If ...

Vulkan in 30 minutes

Vulkan 1.0 的标准终于发布啦!文档在这里:https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vks...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Learn Perl in Y minutes
举报原因:
原因补充:

(最多只允许输入30个字)