PERL中的流程控制

先不说了,只是我的学习笔记,所以呢,在这里只是列出代码,并写下自己的心得

$input=undef;
$inputCount=1;
do
{
$_=<STDIN>;

if($_ eq "admin\n")
{
print "welcome home my lord\n";

$input="hehe";
}
else
{
print "please try again\n";
;
}

}until(defined($input));

@array=qw(1 2 3 4 5);

foreach my $bu(@array)
{
$_=<STDIN>;

if($_ eq "admin\n")

{

print "hehe the answer has got\n";
last;
}
else
{
$inputCount++;
}
}
print "you have input $inputCount\n";

不使用do while循环了,在这儿我们使用do until循环当条件成立时,设置标志,本次循环完成时会进行检测until中的标志性变量,即成功

然后呢foreach循环呢,别的不再说了,只是有一点,break好像不再适用了,但可是应该使用last语句进行跳出循环

钻石操作符

<>该操作符将会从制定的位置读取变量,当然默认的情况(不添加参数的情况下被当做是标准输入设备,即<>是<STDIN>的特例)

while(<>)
{
chomp;

print "you have input ". $_;

}

钻石操作符实际上是来自@ARGV的,该数组是来自由PERL解释器事先建立的数组其内容就是由调用参数组成的列表,只是在程序运行之前@ARGV里已经装满了调用参数。你

可以把元素shift出去(呵呵,或者做些其他的处理),钻石操作符会查看数组,笔者已经尝试过,默认情况下,当@ARGV是空的。钻石操作符就会从键盘上输入

@array=qw(1 2 3 4);

print "@array";#也就是说数组在内插输出时会自动加上空格输出

print @array;

@array=("1\n","2\n","3\n","4\n");

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),小括号中的小括号,则是限定了里面的运算,所以能够得到正确的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

世纪殇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值