Perl语言学习练习及参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#题2:
#使用for循环打印出如下的字符。
# 1
# 12
# 123
# 12345
#*******************#
Fw_Print_Step ($step++,"使用for循环打印出如下的字符。
1
12
123
12345");
my $str= "";
for (1..4) {
$str= $str.$_;
if ($_==4) {
$str= $str.$_+1;
}
print " $str\n";
}
#*******************#
#题3:
my $str1 = "abc";
my $str2 = "efg";
#将上述2个字符串连接起来,并输出合并后的字符串长度
#*******************#
Fw_Print_Step ($step++,"将上述2个字符串\"$str1\"和\"$str2\"连接起来,并输出合并后的字符串长度");
my $str =$str1.$str2;
my $str_length=length($str);
print "新字串$str的长度为:$str_length";
#*******************#
#题4:
#以逆序方式打印出字符串包含的各个字符,如变量为"123456789"则输出为"9","8",..."2","1". my $str1="abc123def456";
#*******************#
Fw_Print_Step ($step++,"以逆序方式打印出字符串包含的各个字符,如变量为\"123456789\"则输出为\"9\",\"8\",...\"2\",\"1\".");
my $str=$str1;
print "以逆序方式打印出字符串\"$str1\"包含的各个字符:\n";
for($length=length($str1); $length>0; $length--) {
$sub_str=chop($str);
if ($length>1) {
print "\"$sub_str\",";
} else {
print "\"$sub_str\".";
}
}
#*******************#
#题5:
#分别使用for与while循环来计算1+2+3+...+100的值
#*******************#
Fw_Print_Step ($step++,"分别使用for与while循环来计算1+2+3+...+100的值"); print "用for循环计算1+2+3+...+100的值:\n ";
my $result=0;
for (1..100) {
$result=$result+$_;
}
print "1+2+3+...+100=$result";
print "\n用while循环计算1+2+3+...+100的值:\n ";
my $result=0;
my $num=1;
while ($num<=100) {
$result=$result+$num;
$num++;
}
print "1+2+3+...+100=$result";
#*******************#
#题6:
#以逆序的方式打印出端口列表包含的成员口
my @cmdArray = ("config", "int fa 0/1", "no shutdonw", "end");
#*******************#
Fw_Print_Step ($step++,"以逆序的方式打印出端口列表包含的成员口");
for (my $start=$#cmdArray; $start>=0; $start--) {
my $array=$cmdArray[$start];
print "$array\n";
}
#*******************#
#题7:
#使用foreach打印出Hash表的所有下标与值
my %map = ('red', 0xff0000,'green', 0x00ff00,'blue',0x0000ff);
#*******************#
Fw_Print_Step ($step++,"使用foreach打印出Hash表的所有下标与值");
foreach $capword (sort keys(%map)) {
print ("$capword: $map{$capword}\n");
}
#while( ($key, $value) = Each (%Map)) {
# Print "\N$key=$value;"}
#*******************#
#题8:
#使用正则匹配判断字符串是否包含error,若是打印提示信息。
my $str = "Error:Unknown command!";
#*******************#
Fw_Print_Step ($step++,"使用正则匹配判断字符串是否包含error,若是打印提示信息。"); if ($str =~ /error/i) {
print "The string include \"error\"";
} else {
print "The string no include \"error\"";
}
#*******************#
#题9:
#按照如下的函数定义写出该函数
#===================================================================== ==========#
# 函数名: SetPortGroup
# 函数功能:将DUT_PORT划分为端口列表,每个列表的端口速率必须相同(根据fa/gi进行判断),且2<=列表端口个数<=5
# 输入参数:DUT_PORT数组名
# 返回信息:端口列表
#===================================================================== ==========#
#设置DUT参与测试的端口数
my @DUT_PORT;
$DUT_PORT[0]=5;
#设置DUT的端口,端口号以gi 0/1、gi 2/1等形式来表示
$DUT_PORT[1]="fa 0/1";
$DUT_PORT[2]="fa 0/2";
$DUT_PORT[3]="fa 0/3";
$DUT_PORT[4]="fa 0/4";