Perl 学习手札之十三:building function

本文深入探讨了Perl编程中常用的功能函数,包括字符串操作、数字转换、数组处理及时间日期相关函数。通过具体示例展示了如何在实际编程中灵活运用这些函数,旨在提升Perl编程能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

string.pl

# !/usr/bin/perl
#

use strict;
use warnings;

main( @ARGV);

sub main
{
     my  $string =  " this is a string\n ";
     print  $string;
    
     chomp  $string;
    message( " [$string] ");
    
     chop  $string;
    message( " [$string] ");
    
     my  $s2 =  uc  $string;
    message( $s2);
    
     $s2 =  lc  $string;
    message( $s2);
    
     $s2 =  substr( $string, 5, 2);
    message( $s2);
    
     $s2 =  substr( $string, 5, 4);
    message( $s2);
    
     $s2 =  index ( $string, ' s ');
    message( $s2);

     $s2 =  rindex( $string, ' s ');
    message( $s2);

     $s2 =  substr( $string, rindex( $string, ' s '));
    message( $s2);
}

sub message
{
     my  $m =  shift or  return;
     print( " $m\n ");
}

sub error
{
     my  $e =  shift ||  ' unkown error ';
     print( " $0: $e\n ");
     exit  0;
}

可以参考perldoc perlfunc 来查看所有的building function 的情况。

以上罗列了几个比较常用的。


number.pl

# !/usr/bin/perl
#

use strict;
use warnings;

main( @ARGV);

sub main
{
     my  $number =  123.456;
     my  $n2 =  int( $number);
    message( $n2);
    
     $number =  " a5 ";
     $n2 =  hex( $number);
    message( $n2);
    
     $number =  " 75 ";
     $n2 =  oct( $number);
    message( $n2);    
    
     $number =  rand();
    message( $number);

     $number =  rand( 100);
    message( $number);    

     $number =  int( rand( 100));
    message( $number); 
    
     srand($$.  time);
     $number =  int( rand( 100));
    message( $number);     
}

sub message
{
     my  $m =  shift or  return;
     print( " $m\n ");
}

sub error
{
     my  $e =  shift ||  ' unkown error ';
     print( " $0: $e\n ");
     exit  0;
}

 关于数字的building in 函数不是太多

 

arrays.pl

# !/usr/bin/perl
#

use strict;
use warnings;

main( @ARGV);

sub main
{
     my  @list = qw(jan feb mar apr may june july aug sep  oct nov dec);
     push( @list, ' foo ');    #将元素‘foo'加入数组的最后一行
    message( join( ' : ', @list));
    message( join( ' : ', reverse  @list));#将数组求逆序
    
     my  $string =  pop  @list;#输出数组的最后一个元素
    message( $string);
    
     $string =  shift  @list;#输出数组的第一个元素给string
    message( $string);

     unshift ( @list, $string);#将string加入数组,变成数组的第一个元素
    message( $string);    

}

sub message
{
     my  $m =  shift or  return;
     print( " $m\n ");
}

sub error
{
     my  $e =  shift ||  ' unkown error ';
     print( " $0: $e\n ");
     exit  0;
}

 可以看相应的注释。

time.pl

# !/usr/bin/perl
#

use strict;
use warnings;

main( @ARGV);

sub main
{
     my  $t =  time;
     my  @months = qw(jan feb mar apr may june july aug sep  oct nov dec);
     my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =  localtime();
     $year+= 1900;
    message( " year: $year, month:$months[$mon],day: $mday ");
    message( " $year-$months[$mon]-$mday $hour:$min:$sec ");
}

sub message
{
     my  $m =  shift or  return;
     print( " $m\n ");
}

sub error
{
     my  $e =  shift ||  ' unkown error ';
     print( " $0: $e\n ");
     exit  0;
}

就一个关于localtime的building in function。

 

 

 

 

 

 

 

posted on 2012-03-11 23:54 韩英武 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/hanleilei/archive/2012/03/11/2391137.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值