实验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);
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/;