PERL中的流程控制
先不说了,只是我的学习笔记,所以呢,在这里只是列出代码,并写下自己的心得 $input=undef; if($_ eq "adminn") $input="hehe"; }until(defined($input)); @array=qw(1 2 3 4 5); foreach my $bu(@array) if($_ eq "adminn") { print "hehe the answer has gotn"; 不使用do while循环了,在这儿我们使用do until循环当条件成立时,设置标志,本次循环完成时会进行检测until中的标志性变量,即成功 然后呢foreach循环呢,别的不再说了,只是有一点,break好像不再适用了,但可是应该使用last语句进行跳出循环 钻石操作符 <>该操作符将会从制定的位置读取变量,当然默认的情况(不添加参数的情况下被当做是标准输入设备,即<>是<STDIN>的特例) while(<>) print "you have input ". $_; } 钻石操作符实际上是来自@ARGV的,该数组是来自由PERL解释器事先建立的数组其内容就是由调用参数组成的列表,只是在程序运行之前@ARGV里已经装满了调用参数。你 可以把元素shift出去(呵呵,或者做些其他的处理),钻石操作符会查看数组,笔者已经尝试过,默认情况下,当@ARGV是空的。钻石操作符就会从键盘上输入 @array=qw(1 2 3 4); print "@array";#也就是说数组在内插输出时会自动加上空格输出 print @array; @array=("1n","2n","3n","4n"); print ?@array; print "@array"; 经过查看结果我们能知道如果直接使用print @array时,它输出的是数组元素的值,中间不加任何字符,但如果@array作为的是双引号内的输出时,则会在元素之间添加上空格 进行输出,这是其一,另外如果数组元素中已经包含了换行字符的话,那么在第二行会有缩进效果,因为我们知道数组在双引号内的输出,会在元素之间天加上空格输出,既有 了缩进,在这种情况下,就不要再使用双引号内的内插输出了,直接输出即可 对于print操作符,在没有小括号的时候()只列表操作符,会将其后的内容全部输出,但是如果有了括号,那就是函数调用了,有其一定的规则 print (2+3)*4; print ((2+3)*5); 第一个输出的是5,因为print后面有了括号,即在输出5之后返回1,然后再用1*4得到的是4,但是4在后面并没有用到,随之丢弃, 而在第二个,print ((2+3)*5),小括号中的小括号,则是限定了里面的运算,所以能够得到正确的结果 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |