1、Perl的Hello World版,vi编辑文件hello,在此文件中输入以下内容:
  
1 #!/usr/bin/perl
2    print ("Hello, world!\n");
   即打印Hello World!
2、变量定义:
 
1 #!/usr/bin/perl -w
2    print "What is your name? ";
3    $name = <STDIN>;  #定义一个变量采用符号$
4    chomp ($name);  #删除本字符串最后的"\n",即回车符
5    print "Hello, $name!\n";
3、在perl中,只区分字符串和数字这两种数据类型,而且两者之间还可以互换。字符串分单引号字符串和
   双引号字符串,数字分整型和浮点型。
4、string repetition operator:
   "fred" x 3 # is "fredfredfred"
5、"." operator
   "hello" . "world" # same as "helloworld"
6、chop and chomp Functions
 
1 $x = "hello world";
2    chop($x); # $x is now "hello worl"
3 
4    $a = "hello world\n";
5    chomp ($a); # $a is now "hello world"
6    chomp ($a); # aha! no change in $a
7、variable interpolation:
 
1 $a = "fred";
2    $b = "some text $a"# $b is now "some text fred"
3 
4    $fred = 'hi';
5    $barney = "a test of " . '$fred'# literally: 'a test of $fred'
6    $barney2= "a test of \$fred"# same thing
8、list literal
   1,2,3) # array of three values 1, 2, and 3
   ("fred",4.5) # two values, "fred" and 4.5
9、list constructor operator
   (1 .. 5) # same as (1, 2, 3, 4, 5)
   (1.2 .. 5.2) # same as (1.2, 2.2, 3.2, 4.2, 5.2)
   (1.3 .. 6.1) # same as (1.3,2.3,3.3,4.3,5.3)
10、"quote word" function
   @a = ("fred","barney","betty","wilma"); # ugh!
   @a = qw(fred barney betty wilma); # better!
11、Array Element Access
   @fred = (7,8,9);
   $b = $fred[0]; # give 7 to $b (first element of @fred)
   $fred[0] = 5; # now @fred = (5,8,9)
   @fred[0,1]; # same as ($fred[0],$fred[1])
12、push and pop Functions
   @mylist = (1,2,3);
   push(@mylist,4,5,6); # @mylist = (1,2,3,4,5,6)
   pop(@mylist); # @mylist = (1,2,3,4,5);
13、shift and unshift Functions
   @fred = (5,6,7);
   unshift(@fred,2,3,4); # @fred is now (2,3,4,5,6,7)
   $x = shift(@fred); # $x gets 2, @fred is now (3,4,5,6,7)
14、reverse Function
   @a = (7,8,9);
   @b = reverse(@a); # gives @b the value of (9,8,7)
   @b = reverse(7,8,9); # same thing

14.1 <STDIN> as an Array:
@a = <STDIN>; # read standard input in a list context

15、The if/unless Statement,unless其实就是if not
  
1 print "how old are you? ";
2    $a = <STDIN>;
3    chomp($a);
4    unless ($a < 18) {
5      print "Old enough! Cool! So go vote!\n";
6      $voter++;
7    }
16、true or false:
   In Perl, the rules are slightly weird, but they give you the expected
   results. The control expression is evaluated for a string value in scalar
   context (if it's already a string, no change, but if it's a number, it is converted
   to a string).If this string is either the empty string (with a length of zero), or a
   string consisting of the single character "0" (the digit zero), then the value of
   the expression is false. Anything else is true automatically.Some examples below:

   0        # converts to "0", so false
   1-1      # computes to 0, then converts to "0", so false
   1        # converts to "1", so true
   ""       # empty string, so false
   "1"      # not "" or "0", so true
   "00"     # not "" or "0", so true (this is weird, watch out)
   "0.000"  # also true for the same reason and warning
   undef    # evaluates to "", so false
17、elsif(not elseif or elif)
  
1 if (some_expression_one) {
2        one_true_statement_1;
3    } elsif (some_expression_two) {
4       two_true_statement_1;
5    } else {
6       all_false_statement_1;
7    }
18、while/until Statement
  
1 $stops = 0;
2    do {
3       $stops++;
4       print "Next stop? ";
5       chomp($location = <STDIN>);
6    } until $stops > 5 || $location eq 'home';
19、for Statement
   for ( initial_exp; test_exp; re-init_exp ) {
      statement_1;
   }
20、foreach Statement
   @a = (1,2,3,4,5);
   foreach $b (reverse @a) {
     print $b;
   }
   or
   foreach (reverse @a) {
      print;  # $_ variable is used as a default for many of Perl's operations
   }
21、Hash
   %smooth = ("aaa","bbb","234.5",456.7);
22、keys Function
   $fred{"aaa"} = "bbb";
   $fred{234.5} = 456.7;
   @list = keys(%fred); # @list gets ("aaa",234.5) or (234.5,"aaa")
23、values function
   %lastname = (); # force %lastname empty
   $lastname{"fred"} = "flintstone";
   $lastname{"barney"} = "rubble";
   @lastnames = values(%lastname); # grab the values
24、each Function
   while (($first,$last) = each(%lastname)) {
     print "The last name of $first is $last\n";
   }
25、delete Function
   %fred = ("aaa","bbb",234.5,34.56); # give %fred two elements
   delete $fred{"aaa"};  //# %fred is now just one key-value pair
26、Hash Slices
   @score{"fred","barney","dino"} = (205,195,30);
   Hash slices can also be used to merge a smaller hash into a larger one. In this example,
   the smaller hash takes precedence in the sense that if there are duplicate keys,
   the value    from the smaller hash is used:
       %league{keys %score} = values %score;
    Here, the values of %score are merged into the %league hash. This is equivalent to
    the much slower operation:
            %league = (%league, %score); # merge %score into %league

27、Input from STDIN
   $a = <STDIN>; # read the next line
   @a = <STDIN>;
  
   Typically, one thing you want to do is read all lines one at a time and do something
   with each line. One common way to do this is:
      while (defined($line = <STDIN>)) {
               # process $line here
      }
28、Diamond Operator
   If you don't specify any filenames on the command line, the diamond operator reads
   from standard input automatically.
   #!/usr/bin/perl
   while (<>) {
        print $_;
   }

   or
   @ARGV = ("aaa","bbb","ccc");
   while (<>) { # process files aaa, bbb, and ccc
          print "this line is: $_";  //print every line in these files aaa,bbb and ccc
   }
29、printf for Formatted Output
   printf "%15s %5d %10.2f\n", $s, $n, $r;

30、if (($words{$somename} || "groucho") eq $someguess) {
       return 1; # return value is true
    注意上面的||不是或运算符,而是说如果左边的值为空的话,那么就是用右边的值。