perl入门--语法和结构(1)

perl入门:
 windows下perl的执行:
  建立perl文件 a.pl
  cmd命令下perl a.pl
 1.perl语法和结构
  perl语句必须由一个分号结尾。
  1)打印输出
   注释由#开头。
   print+由逗号隔开的字符串或者数字
   printf类似c语言中的printf(),归整输出内容格式。
   ex:
    #filename: a.pl
    #author: wjy
    #date:  20110612
    print "hello,world/n";
    print "hello,"," world/n";
    print ("Hello world/n");
    printf "Hello world/n";
    printf("My name is %s/n","wjy");
  2)数据类型:
   标量
   数组
   关联数组(散列Hash)

   变量以特殊字符开头,跟任意数目字母,下划线。
   特殊字符由变量类型和语境决定。
   变量大小写敏感。

   标量:
    标量只能保存单个值,单个字符串或单个数字。
    以" $ "开头。
    ex:
     $first_name = "wu";
     $last_name = "jiaying";
     print "Hello ", $first_name, $last_name 
   数组:
    有序排量的标量。
    各个元素从0开始索引。
    变量以" @ " 符号开头。
    常用内建函数:
     pop 移除最后一个元素并返回。
     push 数组尾部添加新元素。
     shift 移除第一个元素并返回。
     unshift 数组开头添加新元素。
     splice 数组指定位置添加或移除元素。
     sort 数组元素进行排序。
    ex:
    #pop
    print "$names[2]/n";
    $names2=pop@names;
    print "$names2/n";
    print "@names/n";
    #push
    push (@names,"heihei");
    print "@names/n";
    #shift
    $first=shift(@names);
    print "$first/n";
    print "@names/n";
    #unshift
    unshift (@names,"sun");
    print "@names/n";
    #splice
    print "@name/n";
    splice (@names,1,2);
    print "splice @names/n";
    #第一个参数为需要处理的数组,第二个参数为需要删除的元素的数组索引值,第三个参数为需要删除的从索引值开始的第几个元

    splice有四种用法,分别是:

    1.splice ARRAY,OFFSET,LENGTH,LIST

    2.splice ARRAY,OFFSET,LENGTH

    3.splice ARRAY,OFFSET

    4.splice ARRAY
    说明:移除在ARRAY中由OFFSET和LENGTH指定的元素,
    同时让LIST中的元素代替移除的元素。
    在列表上下文,函数返回溢出后的数组元素。
    在标量上下文,返回溢出的最后一个元素,如果无元素移除返回UNDEF。

    注意:如果OFFSET为负数, 则以数组的尾部为起始点。
    如果省略LENGTH(属于第三种情况),则移除从OFFSET到尾部的元素。
    如果LENGTH为负数,则除数组尾部LENGTH个元素外,移除从OFFSET到尾部的所有元素。
    如果OFFSET和LENGTH都为空,去移除所有元素。如果 OFFSET越界,PERL会提示警告并在数组尾部中插入LIST或空。

    对数组元素进行排序——使用sort函数

    程序:

    my @line=qw /12 34 9 12 44 3 11 67 23 1 4 1 7 3 0/;
    print "The sorted number is : ";
    print join(' ',sort{ $a <=> $b }@line);
    print "/n";
    print join(' ',sort@line);#等同于 print join(' ', sort { $a cmp $b } @languages), "/n";

    结果:
    The sorted number is : 0 1 1 3 3 4 7 9 11 12 12 23 34 44 67
    通过改变$a与$b的位置可以降序排序,若将<=>换为cmp,则可以进行以ASCII进行排序。

   散列:
    关联数组
    一组未经排序的键/值对
    通过字符串进行索引
    散列变量以" % " 开头.
    %employee = (
     "Name" => "wujiaying",
     "Phone" => "123456",
     "Position" => "CEO"
    );
    #Name为键,wujiaying为值
    print  $employee{"Name"},"/n";
    print  $employee{"Phone"} ;
    常用内建函数:
    keys  检索散列数组中的所有键
    values 检索散列中的所有值
           each 检索散列中的某个键/值
    delete 删除某个键/值对  
    exists 检查散列某个key是否存在
    ex:
         
     %employee = (
      "Name" => "wujiaying",
      "Phone" => "123456",
      "Position" => "CEO"
     );
     #Name为键,wujiaying为值
     print  $employee{"Name"},"/n";
     print  $employee{"Phone"},"/n" ;

     print keys%employee,"/n";
     print values%employee,"/n";

     while(($key, $value) = each %hash)
     {
      print "$key => $value/n";
     }

     while(($key, $value) = each %employee)
     {
      print "$key => $value/n";
     }

     if(exists $employee{'Name'})
     {
      print "true";
     }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值