perl study note-2

来源:互联网 发布:淘宝装修日记在哪儿看? 编辑:程序博客网 时间:2024/05/01 10:51
#!/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................................................. ";
my @array 
= qw/-1 0 1 2 3 -2 -3/;
my @positive 
= ();
foreach (@array) {
    push @positive, ($_
**2if ($_ > 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);

=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................................................. ";
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/undef
cond
=0false
cond
=""false
cond
="0"false
cond
=undef: false
part2 exercise.................................................
1+3+5+...+99 = 2500
res
=91, when n=13
原创粉丝点击