Perl基础知识

perl基础教程 http://ind.ntou.edu.tw/~dada/cgi/Perlsynx.htm 实验1: sites.csv文件,每行中的数据用Tab分割 www.google.com google www.baidu.com baidu test.pl文件: #!/usr/bin/perl -w use warnings; my $siteConfigDir="/home/abc/20110925"; my $siteMap = {}; open(IN, "<$siteConfigDir/sites.csv") or die "Cannot open site file: sites.csv\n"; while (<IN>){ print "one time iterator\n"; chomp($_); my @var = split /\t/,$_; my ($prefix,$siteName) = @var; $siteMap{$prefix}=$siteName; } while(my ($k,$v) = each %siteMap) { print "(",$k,"-",$v,")\n"; } close(IN); start.sh文件: #!/bin/bash /usr/bin/perl /home/pitt/20110925/unzip/test.pl 输出结果: one time iterator one time iterator (www.google.com-google) (www.baidu.com-baidu) 能够知道while(<IN>)是按行读取字符串。 ===================== 2.另外一个实验以下: use strict; use warnings; my $str="12345\nabcde\n67890\nzzzzz"; my $line; open FH, '<', \$str; while($line=<FH>) { chomp $line; print "input:$line\n"; } close(FH); 输出以下: input:12345 input:abcde input:67890 input:zzzzz 3.在perl里调用shell的方式就是用''将shell命令括起来: my $day; if ( $ARGV[0] ne "" ){ $day=$ARGV[0]; }else{ $day = `date -d yesterday +%Y%m%d`; } my $file=qq/${day}_error.log/; 4 Regular Expression一般是用來尋找特定的字串樣式(pattern),也就是所謂格式辨認(pattern-matching)的功能。 它的運算子是『=~』和『!~』,能够把它念作match和not match。 Syntax: $string =~ /regular expression/expression modifier 正则表达式: http://deerchao.net/tutorials/regex/regex.htm 要想查找数字,字母或数字,空白是很简单的,由于已经有了对应这些字符集合的元字符,可是若是你想匹配没有预约义元字符的字符集合(好比元音字母a,e,i,o,u),应该怎么办? 很简单,你只须要在方括号里列出它们就好了,像[aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!)。 .是一个元字符,匹配除了换行符之外的任意字符。 $a =~ s/%3D/=/; s将待匹配串视为单行