Some perl tips

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

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

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

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

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

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");
[email protected];// 取数组长度
$iNames=0; // 遍历下标
while($iNames<$nNames){
    $annoName=$annoNames[$iNames];

# do sth
    ...

$iNames++;
}

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

[email protected];
    $i=0;

while($i<$n){
       my [email protected][$i];

...

$i++;
    }
}

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

9.判断某字符串是否包含另一字符串
sub isValidAnnotator{
    local($name)[email protected]_;
    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)[email protected]_;

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

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

时间: 2024-11-08 00:13:36

Some perl tips的相关文章

Node.js 网页瘸腿爬虫初体验

延续上一篇,想把自己博客的文档标题利用Node.js的request全提取出来,于是有了下面的初哥爬虫,水平有限,这只爬虫目前还有点瘸腿,请看官你指正了. // 内置http模块,提供了http服务器和客户端功能 var http=require("http"); // 内置文件处理模块 var fs=require('fs'); // 创建一个将流数据写入文件的WriteStream对象 var outstream=fs.createWriteStream('./1.txt'); /

perl 对ENV环境变量的使用

1.hash 方式访问. %ENV  key为环境变量名,value为环境变量值 2.调用ENV模块 . use Env qw(PATH); print "path is $ENV{path}\n"; 这段代码会创建(或者覆盖)环境里的PerlVar变量. $ENV{PerlVar} = "Perl Tech Tips"; 要删除环境变量,就要使用delete.下面的例子会删除临时的环境变量: delete $ENV{temp}; 访问环境变量的第二种方式是使用En

SUSE linux升级perl及openssl

一.perl安装: 1.下载并解压软件:tar zxvf perl-5.24.0.tar.gz 2.运行./configure.gnu -help查看帮助,运行./configure.gnu -des -Dprefix=/usr/local/perl -Dusethreads -Uversiononly设置源码 3.编译及安装 make&make install 4.备份旧perl,替换新perl mv /usr/bin/perl /usr/bin/perl.bak ln -s /usr/loc

Tips for Shell

Tips for Shell There will be some case-based tips for Shell. 1. Replace the sequence space with newline Input example a b c d Output example a b c d Summary sed is the best solution. Solution sed -r -e 's/[[:space:]]/\n/g' 2. Sort the unordered word

perl代码调试

perl调试教程 一.DESCRIPTIONA (very) lightweight introduction in the use of the perl debugger, and a pointer to existing, deeper sources of information on the subject of debugging perl programs.There's an extraordinary number of people out there who don't

[ Perl 6 ] 被取代的钻石操作符(&lt;&gt;)

[ Perl 6 ] 被取代的钻石操作符(<>) There is more than one way to do it. Perl 5中,如果要逐行读取一个文件的内容,你可能会写出下面的代码 while (<>) { chomp; print "It was $_ that I saw.\n"; } $ perl myscript.pl in 但是在Perl 6中,钻石操作符<>已经不再被支持,现在可以用下面的代码来完成上面的功能 for line

Android应用程序性能优化Tips

主要介绍一些小细节的优化技巧,虽然这些小技巧不能较大幅度的提升应用性能,但是恰当的运用这些小技巧并发生累积效应的时候,对于整个App的性能提升还是有不小作用的.通常来说,选择合适的算法与数据结构会是你首要考虑的因素,在这篇文章中不会涉及这方面的知识点.你应该使用这篇文章中的小技巧作为平时写代码的习惯,这样能够提升代码的效率. 通常来说,高效的代码需要满足下面两个原则: 不要做冗余的工作 尽量避免执行过多的内存分配操作 To ensure your app performs well across

程序员取悦女朋友的正确姿势---Tips(iOS美容篇)

前言 女孩子都喜欢用美图工具进行图片美容,近来无事时,特意为某人写了个自定义图片滤镜生成器,安装到手机即可完成自定义滤镜渲染照片.app独一无二,虽简亦繁. JH定律:魔镜:最漂亮的女人是你老婆魔镜:程序员不是木头人 核心技术 图片滤镜核心技术的基本思路如下: 核心技术流程 具体流程 1.创建一个图像处理工具类 注:该类实例包括一个图像处理方法,该方法在传入原始图像和一个颜色矩阵后生成一个处理好的图像. @interface JHFeilterManager : NSObject @proper

window-运行perl脚本(搭建health-check环境)

安装vsphere sdk VMware-vSphere-Perl-SDK-5.1.0-780721.exe ##看具体的情况安装对应版本的sdk 修改系统环境变量,将安装路径Perl/bin和Perl/site/bin添加到path变量的后面 cmd到perl脚本目录: perl *.pl  --serrver ip –username name –type vcenter ##vcenter服务器 perl *.pl     --server ip –username name –type