# !/ usr / bin / perl - wuse 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 = cutprint " part1 condition/loop................................................. " ;my @array = qw /- 1 0 1 2 3 - 2 - 3 / ;my @positive = (); foreach (@array) ... { push @positive, ($_**2) if ($_ > 0);} print foreach (@positive);print " " ;@positive = ();@positive = map ... { $_**2 } grep ... {$_ > 0} (@array);print for (@positive); print " " ;my $test = 0 ;print " test=0 " if ($test == 0 );print " test=0 " unless ($test != 0 );print " 4 false conditions: 0/null string/string 0/undef " ;my $cond = 0 ;print " cond=0: false " if ( ! $cond);$cond = "" ;print " cond="": false " if ( ! $cond);$cond = " 0 " ;print " cond="0": false " if ( ! $cond);$cond = undef;print " cond=undef: false " if ( ! $cond); = head2part2: 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 ; = cutprint " part2 exercise................................................. " ;my $res = 0 ; for (my $i = 1 ; $i < 100 ; $res += $i, $i += 2 ) ... {;} print " 1+3+5+...+99 = $res " ;$res = 0 ;my $n = 0 ; foreach ( 1 ... 100 ) ... { $n = $_-1; last if (($res+=$_) > 100);} print " res=$res, when n=$n " ;[root@china1 code]# . / perlnote3.pl part1 condition / loop................................................. 149 149 test = 0 test = 0 4 false conditions: 0 / null string / string 0 / undefcond = 0 : false cond = "" : false cond = " 0 " : false cond = undef: false part2 exercise................................................. 1 + 3 + 5 + ... + 99 = 2500 res = 91 , when n = 13