Perl 学习手札之十三:building function

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。

原文地址:https://www.cnblogs.com/hanleilei/p/2391137.html