Perl学习笔记(3)变量定义,关系运算符

####################关于关系运算符
数字值比较:==, >, <, >=, <=, != ;注意用数字值比较运算符比较字符串时,字符串当作0处理;
字符串比较: eq, gt, lt, ge, le, ne;(undef被当作假来处理)
逻辑运算符:&&, ||, 和! ; and, or, not等。
需要注意的是,字符串比较不能用等号,必须用eq
if($var eq "hello") { 
print "world"; 



####################控制符号
last:最后一次了,跳出当前BLOCK,紧接BLOCK之后的代码往下。
next:这一次到此为止,对本BLOCK开始下一轮。例,显示1以10之间的奇数
for($i<=10;$i++)
{
#如果是2的倍数的话,就到循环的下一个陈述
next if($i%2)==0)
print"$i是一个奇数!\n";
}
标号:类似于goto。
last 和 next 通常和 if 倒置语句或者标号结合使用,实现跳转。
exit语句: exit 0; 结束当前的Perl程序,返回OS;



####################if语句的BLOCK必须带括号
if($var) 

print "yes"; 



####################变量定义
变量定义,以$号开头,如:$num =1;
数组定义,以@开头,如:@array = (1,2,3);
散列定义,以%开头,如:%hash=("a",1,"b",2);

1.数组元素调用 $array[index],其中index表示数组下标,如上例,$array[0]的值是1

2.数组的表示有上下文确定。在scalar contex标量上下文中,@array表示一个标量。在list context列表上下文中,@array表示一个数组。例如,
@AllAnswer=split("@",$HashLastPY{$LastPY});
for ( $i=0;$i<@AllAnswer;$i++){
print "$i:$AllAnswer[$i]\t\t";
if ( $i>0 && $i%3 == 0 ){
print "\n";
}

3.散列的keys和values函数
keys函数会返回此hash的所有keys,values函数将返回所有的values。如果hash中没有元素,则此函数将返回空列表。
my %hash = ("a"=>1, "b"=>2, "c"=>3);
print my @k = keys %hash;
print my @v = values %hash;


4.散列的each函数

如果想迭代hash的每一个元素,一种通常的方法是使用each函数,它将返回key/value对应的2个元素列表。
当对同一个hash 函数进行一次迭代时,将返回下一个key/value对,直到所有的元素均被访问。如果没有更多的key/value对,则each函数将返回空表。
my %hash = ("a"=>1, "b"=>2, "c"=>3);
while(($key, $value) = each %hash)
{
print "$key => $value\n";
}
当然,each返回的key/vlaue对,顺序是混乱的(它其顺序和keys和values函数返回的顺序相同)。

5. 如果想将其按序排放,可以对它们排序(使用sort)。
my %hash = ("a"=>1, "b"=>2, "c"=>3, "d"=>4);
foreach $key (sort keys %hash)
{
$value =$hash{$key};
print "$key => $value\n";
}


#################### split搭配push
open(In,"IdiomPY.txt");
while(<In>){
chomp;
#split返回一个数组
($idiom,$PY)=split(" ",$_);
#向数组尾端添加一个值
push(@AllIdiom,$idiom);
}
close(In);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值