Perl语言学习练习及参考答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

my$step=1;subFw_Print_Step{my($step,$description)=@_;print(\n\n==========================\n);print(题$step:);if($description){print($description);}print(\n==========================\n);}#*******************##题1:#设置变量int1的值为2my$int1=2;#设置变量int2的值为10my$int2=10;#比较变量int1与int2的大小,并打印出比较结果#*******************#Fw_Print_Step($step++,比较变量int1与int2的大小,并打印出比较结果);print\n变量int1=$int1,int2=$int2;print\n比较结果:;if($int1$int2){print$int1$int2;}elsif($int1$int2){print$int1$int2;}else{print$int1=$int2;}#*******************##题2:#使用for循环打印出如下的字符。#1#12#123#12345#*******************#Fw_Print_Step($step++,使用for循环打印出如下的字符。11212312345);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);$length0;$length--){$sub_str=chop($str);if($length1){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+$_;}print1+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++;}print1+2+3+...+100=$result;#*******************##题6:#以逆序的方式打印出端口列表包含的成员口my@cmdArray=(config,intfa0/1,noshutdonw,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(sortkeys(%map)){print($capword:$map{$capword}\n);}#while(($key,$value)=Each(%Map)){#Print\N$key=$value;}#*******************##题8:#使用正则匹配判断字符串是否包含error,若是打印提示信息。my$str=Error:Unknowncommand!;#*******************#Fw_Print_Step($step++,使用正则匹配判断字符串是否包含error,若是打印提示信息。);if($str=~/error/i){printThestringinclude\error\;}else{printThestringnoinclude\error\;}#*******************##题9:#按照如下的函数定义写出该函数#===============================================================================##函数名:SetPortGroup#函数功能:将DUT_PORT划分为端口列表,每个列表的端口速率必须相同(根据fa/gi进行判断),且2=列表端口个数=5#输入参数:DUT_PORT数组名#返回信息:端口列表#===============================================================================##设置DUT参与测试的端口数my@DUT_PORT;$DUT_PORT[0]=5;#设置DUT的端口,端口号以gi0/1、gi2/1等形式来表示$DUT_PORT[1]=fa0/1;$DUT_PORT[2]=fa0/2;$DUT_PORT[3]=fa0/3;$DUT_PORT[4]=fa0/4;$DUT_PORT[5]=fa0/5;$DUT_PORT[6]=fa0/6;$DUT_PORT[7]=fa0/7;$DUT_PORT[8]=fa0/8;$DUT_PORT[9]=fa0/9;$DUT_PORT[10]=gi0/10;$DUT_PORT[11]=gi1/1;$DUT_PORT[12]=gi1/2;$DUT_PORT[13]=gi1/3;$DUT_PORT[14]=gi1/4;$DUT_PORT[15]=gi1/5;$DUT_PORT[16]=gi1/6;$DUT_PORT[17]=gi1/7;$DUT_PORT[18]=gi1/8;#调用SetPortGroup函数实现对DUT_PORT的分组#*******************#Fw_Print_Step($step++,按照如下的函数定义写出该函数.#=======================================================##函数名:SetPortGroup#函数功能:将DUT_PORT划分为端口列表,每个列表的端口速率必须相同(根据fa/gi进行判断),且2=列表端口个数=5#输入参数:DUT_PORT数组名#返回信息:端口列表#========================================================#);subSetPortGroup{my@dutPort=@_;my@portList=;#统计FA端口的数目my$fa_num=0;print将DUT_PORT数组中的端口转换为列表的形式:\n;for($i=1;$i=$dutPort[0];$i++){@portList=(@portList,$dutPort[$i]);}for(0..$#portList){print$portList[$_]\n;}print\n-------------------------------------------------------\n;print判断每个列表的端口速率是否相同\n;for($i=1;$i=$#portList;$i++){my$speed=$portList[$i];if($speed=~/fa/i){print端口$portList[$i]的速率为100Mbps\n;$fa_num++;}else{print端口$portList[$i]的速率为1000Mbps\n;}}print\n-------------------------------------------------------\n;if($#portList2){printFAIL:测试端口不少于2个;@portlist=;}elsif($#portList5){printFAIL:测试端口不超过5个;@portlist=;}elsif($fa_num==0||$#portList==$fa_num){printPASS:列表的端口速率相同.;}else{printFAIL:列表的端口速率不相同;@portlist=;}return@portList;}SetPortGroup@DUT_PORT;==========================题1:比较变量int1与int2的大小,并打印出比较结果==========================变量int1=2,int2=10比较结果:210==========================题2:使用for循环打印出如下的字符。11212312345==========================11212312345==========================题3:将上述2个字符串abc和efg连接起来,并输出合并后的字符串长度==========================新字串abcefg的长度为:6==========================题4:以逆序方式打印出字符串包含的各个字符,如变量为123456789则输出为9,8,...2,1.==========================以逆序方式打印出字符串abc123def456包含的各个字符:6,5,4,f,e,d,3,2,1,c,b,a.==========================题5:分别使用for与while循环来计算1+2+3+...+100的值==========================用for循环计算1+2+3+...+100的值:1+2+3+...+100=5050用while循环计算1+2+3+...+100的值:1+2+3+...+100=5050====================================================题6:以逆序的方式打印出端口列表包含的成员口==========================endnoshutdonwintfa0/1con

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功