perl study note-2

本文详细介绍了Perl语言中条件判断与循环控制的基本用法,包括if/elsif/else语句、unless语句、while循环、until循环及for循环等,并通过实例展示了如何使用这些结构进行数组操作和简单的数学计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值