#!/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 发布
747

被折叠的 条评论
为什么被折叠?



