zoukankan      html  css  js  c++  java
  • Some perl tips

    下面是日常工作中一些代码片段的总结,部分注释是后加的,采用了//这种形式,请勿套用。

    1.取得用户输入
    print("Please input the date range:");
    $dateRange=<STDIN>;
    chomp($dateRange);

    2.如果数据不符合要求退出程序
    if(!isValidDateRange($dateRange)){
       die("Wrong date range ");
    }

    3.劈分字符串得到数组
    my @arrDate=split(/s*[~,-]s*/,$dateRange);
    $startDate=@arrDate[0];
    $endDate=@arrDate[-1]; // 倒数第一个,perl数组的这个特性真是太贴心了,比C一脉的长度减一要省事不少,不过也有elsif这种你奈我何的任性设计

    4.在屏幕上打印文本
    print("Reading file... ");

    5.逐行读取文件
    my @arrFileFound;

    open(FOF, $fof) || die "Could not read $fof:$!";
    while ($line = <FOF>){
        # read a line from file
        chomp($line);

        # fill the arrFileFound with line
        push(@arrFileFound,$line); // 读出的行放入数组
    }
    close(FOF);

    6.数组排序
    @arrFileFound=sort(@arrFileFound);

    7.遍历数组
    # 初始化数组
    @annoNames=("danile","iria","jinwn","ka","manzhez","marna","max_nglish","mohmed","roxna","thir","trno","trno_english","transtc_en");
    $nNames=@annoNames;// 取数组长度
    $iNames=0; // 遍历下标
    while($iNames<$nNames){
        $annoName=$annoNames[$iNames];

        # do sth
        ...

        $iNames++;
    }

    8.将数组作为参数传入函数
    函数定义:
    sub printAnnologs{
        local($annotator,*files)=@_;
        

        $n=@files;
        $i=0;

        while($i<$n){
           my $file=@files[$i];

           ...

           $i++;
        }
    }

    调用方式
    &printAnnologs($annoName,*annologs);

    9.判断某字符串是否包含另一字符串
    sub isValidAnnotator{
        local($name)=@_;
        my $names="danile","iria","jinwn","ka","manzhez","marna","max_nglish","mohmed","roxna","thir","trno","trno_entac_en";
        return index($names,$name)!=-1;
    }

    10.正则表达式模式匹配
    sub isValidDateRange{
        local($date)=@_;

        return $date=~/^d{8}s*[-~,]s*d{8}$/;
    }

    11.字符串替换
    #将$newfile中的USA替换成America
    my $newfile="ChinaBeijingUSANewyork";
    $newfile=~s/USA/America/;

    相关文章:http://www.cnblogs.com/xiandedanteng/p/3250688.html

  • 相关阅读:
    Jenkins配置国内镜像源
    Centos7安装Jenkins
    IDEA端口占用问题
    dsPIC33F配置ADC软件触发轮询与采样中断的注意事项与区别
    stm32cubemx生成HRTIM DAC等代码及注意事项
    TMS320F28335下载程序到Flash相关问题
    Tms320F28335中AD采样存储地址问题记录
    MatlabR2018a出现“Licence Manager Error -8”
    system级别配置php-开机自启方式
    《费曼学习法》笔记摘要
  • 原文地址:https://www.cnblogs.com/heyang78/p/4247853.html
Copyright © 2011-2022 走看看