第九章:以正则表达处理文本

上一篇 / 下一篇  2008-11-12 11:35:10 / 个人分类:《Perl语言入门》-小骆驼书-练习题答案

1)
use warnings;
my $what = 'fred|barney';
/($what){3}/;

2)
use warnings;
my $inFile = $ARGV[0];
my $outFile = "$inFile".".out";
open IN, $inFile
 or die "Can't open $infile! ($!)";
if (open OUT, ">$outFile"){
 while (<IN>){
  s/fred/Larry/gi;
  print OUT $_;
 }
} else {
 die "Can't create $outFile: $!"; 
}

3)
use warnings;
my $in = $ARGV[0];
my $out = $in.".out";
open IN, $in
 or die "Can't open $in! :$!";
open OUT, ">$out"
 or die "Can't write $out! :$!";
#my answer
#while(<IN>){
# if (s/(fred)(.*)(wilma)/\L\u$3\E$2\L\u$1\E/gi){
#  print OUT $_; 
# }elsif(s/(wilma)(.*)(fred)/\L\u$3\E$2\L\u$1\E/gi){
#  print OUT $_; 
# }elsif(s/fred/Wilma/gi){
#  print OUT $_; 
# }elsif(s/wilma/Fred/gi){
#  print OUT $_; 
# }else{
#  print OUT $_; 
# }
#}
#easier
while(<IN>){
 chomp;
 s/Fred/\n/gi;
 s/Wilma/Fred/gi;
 s/\n/Wilma/g;
 print OUT "$_\n"; 
}

4)
use warnings;
my $copyRight = "## Copyright (C) 2008 by xjiang";
$^I = "~";
while(<>){
 if(s/^(use warnings;)/$1$copyRight/){
  print; 
 }else{
  print;
 }
}

5)
use warnings;
my $copyRight = "## Copyright (C) 2008 by xjiang";
$^I = "~";
while(<>){
 if(/.*($copyRight).*/){
  print;
 }elsif(s/^(use warnings;)/$1$copyRight/){
  print;
 }else{
  print;
 }
}


TAG:

 

评分:0

我来说两句

日历

« 2024-04-23  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 47565
  • 日志数: 80
  • 建立时间: 2008-10-27
  • 更新时间: 2009-07-17

RSS订阅

Open Toolbar