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將待匹配串視爲單行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章