• 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。

  • 相关阅读:
    【5min+】 秋名山的竞速。 ValueTask 和 Task
    int16、int32、int64的范围
    C#实现的一些常见时间格式
    C# WPF抽屉效果实现(C# WPF Material Design UI: Navigation Drawer & PopUp Menu)
    如何为.NETCore安装汉化包智能感知
    .NetCore学习笔记:三、基于AspectCore的AOP事务管理
    C#设计模式学习笔记:简单工厂模式(工厂方法模式前奏篇)
    .net core3.0 webapi搭建(一)
    [Abp vNext 源码分析]
    WPF 控件功能重写(ComboBox回车搜索)
  • 原文地址:https://www.cnblogs.com/hanleilei/p/2391137.html
Copyright © 2020-2023  润新知