perl study note-2

# !/ 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
= 0 false
cond
= "" false
cond
= " 0 " false
cond
= undef:  false
part2 exercise.................................................
1 + 3 + 5 + ... + 99   =   2500
res
= 91 , when n = 13
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值