#!/usr/bin/perl -w use strict; =head1 1 condition: false when value is 0/null string/string with "0" value/undef; 2 block: {}; vars only take effect in the block they are defined; 3 compare operators: <, >, ==, !=... used for numeric compare; eq, lt, gt, le, ge, ne used for string compare; 4 condition state: if true {} elsif {} else {}; statement if true; simple! unless false {}; 5 loop state: while true {}; untile false {}; for (init; condition; operation) {}; "statement of $_" for [@array] | (0...10) for (1...10) { "statement of $_" }; print for (); print foreach (@array); for my $var (1...10) {}; for === foreach =cut print "part1 condition/loop................................................./n"; my @array = qw/-1 0 1 2 3 -2 -3/; my @positive = (); foreach (@array) { push @positive, ($_**2) if ($_ > 0); } print foreach (@positive);print "/n"; @positive = (); @positive = map { $_**2 } grep {$_ > 0} (@array); print for (@positive); print "/n"; my $test = 0; print "test=0/n" if ($test == 0); print "test=0/n" unless ($test != 0); print "4 false conditions: 0/null string/string 0/undef/n"; my $cond = 0; print "cond=0: false/n" if (! $cond); $cond = ""; print "cond=/"/": false/n" if (! $cond); $cond = "0"; print "cond=/"0/": false/n" if (! $cond); $cond = undef; print "cond=undef: false/n" if (! $cond); =head2 part2: exercise 1. caculate 1+3+5+...+99; 2. the max value of n when (1+2+..+n)<=100; 3. caculate the factorial of x, inputted by user, x<50 or alarm when x>50; =cut print "part2 exercise................................................./n"; my $res = 0; for (my $i=1; $i<100; $res+=$i, $i+=2) {;} print "1+3+5+...+99 = $res/n"; $res = 0; my $n = 0; foreach (1...100){ $n = $_-1; last if (($res+=$_) > 100); } $res = 0; ($res += $_) foreach (1...13); print "res=$res, when n=$n/n";
perlnote3
最新推荐文章于 2010-03-23 12:03:00 发布