文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>开始学perl,第三天

开始学perl,第三天

时间:2007-04-11  来源:白熊

好长时间没摆弄这个博客了。近来开始摆弄perl。又一次验证了那个理论:学习编程光看书看别人的程序是没有用的必须自己写才能学到东西。也验证了另外一个言论就是perl处理文本的能力太强了。 今天是学perl第三天了,自己尝试着写了两个函数,一个是计算两个日期相差多少天,另外一个就是消除字符串变量最后的空格。帖出来跟大家共同学习。 sub day_cha{
      my  ($first_day,$second_day) = @_ ;
      if( $first_day gt $second_day )
      {
          ( $first_day , $second_day ) = ( $second_day , $first_day );
      }
      @day = split // ,  $first_day , 8 ;
      @first = ( 0 , 0 , 0
                   , $day[6].$day[7]
                   , ( ( $day[4].$day[5] ) - 1 )
                   , ( ( $day[0].$day[1].$day[2].$day[3] ) - 1900 )
                   , 0 , 0 , 0
               );
      @day2 = split // , $second_day , 8 ;
      @second = ( 0 , 0 , 0
                   , $day2[6].$day2[7]
                   , ( ( $day2[4].$day2[5] ) - 1 )
                   , ( ( $day2[0].$day2[1].$day2[2].$day2[3] ) - 1900 )
                   , 0 , 0 , 0
               );
      $cha_se = timelocal(@second) - timelocal(@first);
      return  $cha_se/60/60/24 ;
 }
第一个这个就是计算两个日期相差天数的函数,输入的参数为两个字符串日期的全称,例如‘20070309’ ‘20071231’这样的日期表示。这个函数的原来就是将日期换算成距离“纪年”来的秒数,然后在计算两个的相差,除以一天的秒数,计算原理比较简单。这个函数自己学到的就是数组元素的交换,还有就是将变量分割成单个字符。
sub kill_blank{
      my ($in_str) = @_;
      my @str_cont = split // , $in_str;
      my $re_char = '';
      while( $str_cont[$#str_cont] eq ' ' )
      {
            $#str_cont--;
      }
      for( $i=0 ; $i<=$#str_cont ; $i++ )
      {
          $re_char.= $str_cont[$i];
      }
      return $re_char;
}
这个函数自己学习的就是$#str_cont的理解加深,感觉这个变量实在是太经典了。   总结:虽然自己写出了这两个函数,功能实现了但是从编程简单上来讲还是有很大不足的,我明白这两个函数完全可以再优化再简练,但是对于我刚拿过来perl三天的来说还是可以的,我自认为。呵呵。
相关阅读 更多 +
排行榜 更多 +
百炼英雄抽卡技巧指南

百炼英雄抽卡技巧指南

休闲益智 下载
英雄没有闪滚雷旋风技能如何搭配

英雄没有闪滚雷旋风技能如何搭配

休闲益智 下载
英雄没有闪雷旋风BD构筑推荐

英雄没有闪雷旋风BD构筑推荐

休闲益智 下载