开始学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三天的来说还是可以的,我自认为。呵呵。
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三天的来说还是可以的,我自认为。呵呵。
相关阅读 更多 +
排行榜 更多 +