Chinaunix首页 | 论坛 | 博客
  • 博客访问: 222193
  • 博文数量: 50
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 541
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-03 11:48
文章分类

全部博文(50)

文章存档

2010年(38)

2009年(12)

我的朋友

分类:

2010-04-23 23:21:33

#!/usr/bin/perl

use strict;
use Switch;


my $val = "haha";
my %hash = ("haha" => "weibiao");
my @array;

switch ($val)
{    
    case 1             { print "number 1" }

                       #是不是和数字相等
    case "a"           { print "string a" }

                       #是否 eq "a"是不是和字符串a相等
    case [1..10,42]    { print "number in list" }

                      #是否在这个[]匿名的数组里面(也可以理解为列表)
    case (\@array)     { print "number in list" }

                        #是否在数组中,其实和上面是一样的
    #case /\w+/        { print "pattern" }    

    #case qr/\w+/    { print "pattern" }    
                    #是否是字母
    case (\%hash)    { print "entry in hash" }

                    #查找HASH中有无$val这个键值
    case (\&ha)    { print "arg to subroutine" }     

                    #这里的意思是把$val传给函数做参数

                    #目前还没有想通这个有什么用
    else            { print "previous case not true" }

                    #未找到对应的值,相当于c里面的default咯,就这么简单
}

##子函数##
sub ha
{
    $_ = shift;
    print "$_ \n";
}

 

#说白了,PERL的switch很强大,很变态

 

 

 


阅读(8028) | 评论(0) | 转发(0) |
1

上一篇:HASH排序

下一篇:从C到Perl(转)

给主人留下些什么吧!~~