perl学习笔记-----------------------(2)

    xiaoxiao2023-03-24  7

     1.Perl可以使用括号来改变优先级 2.对于数字的比较,Perl 提供了 < <= = = >= != 这些操作符。每一种返回的值为true 或者false 3.对于字符串比较,Perl 有如下的一些有趣的字符串比较符: lt le eq ge gt ne。它们将一个字符接着一个字符的比较两个串来 判断它们的关系:相等,小于,等等。(注意,在ASCII 中,大写字母在小写字母的前面)。 4.if 控制结构 一旦能比较两个值时,就希望能根据这些比较结果作判断。和别的语言类似,Perl 中也提供了if 控制结构: if($name gt ‘fred’){ print “‘$name’comes after ‘fred’in sorted order.\n”; }如果需要另一种选择,可以使用关键字else: if($name gt ‘fred’){ print “‘$name’comes after ‘fred’in sorted order.\n”; }else{ print “‘$name’does not come after ‘fred’.\n”; print “Maybe it’s the same string, in fact.\n”; } 花括号是必须的(这一点和C 不同)。 5.Perl 不同于其它的一些语言,它没有Boolean 类型。它利用如下几条规则:   ● 如果值为数字,0 是false;其余为真   ● 如果值为字符串,则空串(‘’)为false;其余为真   ● 如果值的类型既不是数字又不是字符串,则将其转换为数字或字符串后再利用上述规则◆。   ◆这意味着undef(很快会看到)为false。所有的引用(在Alpaca 书中有详细讨论)都是true。   这些规则中有一个特殊的地方。由于字符串‘0’和数字0 有相同的标量值,Perl 将它们相同看待。也就是说字符串‘0’是唯一 一个非空但值为0 的串。 6.Perl 程序从键盘上得到输入,有一种简单方法:使用行输入操作符(line-input operator),<STDIN>。 ◆是行输入运算符对文件句柄STDIN 的操作。 <STDIN>作为标量值来使用的,Perl 每次从标准输入中读入文本的下一行,将其传给<STDIN>。标准输入可以有很多种; 默认的是键盘。如果还没有值输入<STDIN>,Perl 会停下来等你输入一些字符,由换行符结束(return)。 ◆坦白讲,是你的系统等待输入,Perl 等待你的系统。具体的细节与机器和配置有关。由于是系统而非Perl 控制你的输入,因此要更正错 误的输入通常可以在按下回车前使用退格键(backspace)。如果想更多的控制输入,可以使用Term::ReadLine 这个模块,在CPAN 中可 以下载到。 <STDIN>中的字符串通常由一个换行符作为结尾。因此,可以如下操作: ◆例外的情况是,标准输入流在行中间就结束了。当然,普通的文本文件通常不是这样。 $line = <STDIN>; if($line eq “\n”){ print “That was just a blank line!\n”; }else{ print “That line of input was: $line”; }实际上,通常你不需要保留换行符,因此需要chomp 来去掉它。 7.chomp 操作对变量起作用,而此变量含有字符串。如果字符串结尾有换行符,chomp 可以去掉它。这基本上就是它能完成的所有功能,如下例: $text = “a line of text\n”; #也可以由<STDIN>输入 chomp($text); #去掉换行符(\n) 8..基于Perl 中的一条基本原则:在需要使用变量的地方,可以使用赋值表达式来代替。我们有更简单的使用chomp 的方法。Perl 首先做赋 值运算,再使用这个变量。因此使用chomp 的最常用方法是: chomp ($text = <STDIN>); #读入,但不含换行符 $text = <STDIN>; chomp ($text); #同上,但用两步完成 9.chomp 是一个函数。作为一个函数,它有一个返回值,为移除的字符的个数。这个数字基本上没什么用: $food = <STDIN>; $betty = chomp $food; #得到值1  如上,在使用chomp 时,可以使用或不使用括号()。这又是Perl 中的一条通用规则:除非移除它们时含义会变,否则括 号是可以省略的。 如果结尾有两个或两个以上的换行符◆,chomp 仅去掉一个。如果没有,那什么也不做,返回0。 ◆这种情况在一次读入一行时不会发生,但使用了输入分隔符(input separator)($/)(其不为换行符(\n)),read 函数,或者将一些字符串结 合起来就有可能发生。 10. while 语句可以循环执行其内部的一块代码直到其条件非真: ◆基本上每个程序员都有创建过无限循环语句的经历。如果程序不停的运行,你可以像关闭系统中别的程序那样来关闭Perl 程序。通常 是使用CTRL+C;检查你的系统文档来了解具体的信息。 $count = 0; while ($count < 10) { $count + = 2; print “count is now $count\n”; #打印出2 4 6 8 10 } 条件中真假值的判断和if 结构中是一样的。和if 控制结构相同,花括号是必须的。判断条件在迭代前执行,如果条件为假, 则一次也不执行。 11.变量在第一次赋值前有一个特殊值undef,按照Perl 来说就是:“这里什么也没有,请继续”。如果这里的“什么也没有”是一些“数字”,则表现为0。如果是“字符串”,则表现为空串。许多操作当参数不恰当时返回undef。如果没做特殊处理,通常会得到0 或者空串。但应当知道如果警告是打开的,那Perl 在你不恰当的使用未定义值时会提醒你。例如,将一个undef 的变量赋给另一个变量不会有什么问题,但如果print 某个未定义的值则将引起警告。 12.能返回undef 的操作之一是行输入操作,<STDIN>。通常,它会返回文本中的一行。但如果没有更多的输入,如到了文件 的结尾,则返回undef◆。要分辨其是undef 还是空串,可以使用defined 函数,它将在为undef 时返回false,其余返回true。 ◆事实上,从键盘输入,不会有“end-of-file”,但其可重定向到文件中再输入。或者用户可能输入某些键,而系统将其作为end-of-file 看待。 $madonna = <STDIN>; If ($defined ($madonna)){ print “The input was $madonna”; }else{ print “No input available!\n”; } 如果想声明自己的undef 值,可以使用undef: $madonna = undef ; #同$madonna 从未被初始化一样。 2.1.2 练习  1.[5]写一个程序,计算半径为12.5 的圆的周长。圆周长等于2PI?(PI?约为3.1415926)乘以半径。答案为78.5     #!/usr/bin/perl -w $pi=3.1415926; $circ=2*$pi*12.5; print "The circumference of a circle of radius 12.5 is $circ.\n" 2. [4]修改上述程序,用户可以在程序运行时输入半径。如果,用户输入12.5,则应得到和上题一样的结果。    #!/usr/bin/perl -w $pi=3.1415926; print "what is the radius?"; chomp($radius=<STDIN>); $circ=2*$pi*$radius print "The circumference of a circle of radius $radius is $circ.\n";     3. [4]修改上述程序,当用户输入小于0 的数字时,程序输出的周长为0,而非负数     #!usr/bin/perl -w $pi=3.1415926; print "what is the radius?"; chomp($radius=<STDIN>); $circ=2*$pi*$radius; if($radius<0) { $circ=0; } print "The circumference of a circle of radius $radius is $circ.\n"; 4. [8]写一个程序,用户能输入2 个数字(不在同一行)。输出为这两个数的积   #!usr/bin/perl -w print "Enter first number:" chomp($one=<STDIN>); print "Enter second number:" chomp($two=<STDIN>); $result=$one*$two; print "The result is $result.\n"; 5. [8]写一个程序,用户能输入1 个字符串和一个数字(n)(不在同一行)。输出为,n 行这个字符串,1 次1 行(提示,使 用“x”操作符)。例如,如果用户输入的是“fred”和“3”,则输出为:3 行,每一行均为fred。如果输入为“fred”和 “299792”,则输出为299792 行,每一行均为fred。 #!usr/bin/per; -w print "Enter a string:"; $str=<STDIN>; print "Enter a number of times:"; chomp($num=<STDIN>); $result=$str x $num; print "The result is :\n$result"; WEL测试 认证博客专家 软件测试 性能测试 接口测试 一线的测试工作人员。喜欢专研并应用新的技术,用于提升测试效率。擅长:测试新人培训、测试进阶、接口测试、性能测试、问题定位、自动化、数据测试、渗透测试! 如果对测试感兴趣或者遇到一些难题,可以加我微信:Wel_Test,加时填好备注!
    转载请注明原文地址: https://ju.6miu.com/read-1202608.html
    最新回复(0)