2012年12月19日水曜日

開発環境

『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の9章(正規表現によるテキスト処理)、9.6(練習問題)4を解いてみる。

その他参考書籍

4.

コード(TextWrangler)

sample.pl

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';

my %files;

for(@ARGV){
  $files{$_} = 1;
}
while(<>){
  delete $files{$ARGV} if /^## Copyright/;
}
@ARGV = keys %files;
$^I = ".bak";
while(<>){
  if(/^#!/){
    $_ .= "## Copyright (C) 2012 by kamimura\n";
  }
  print $_;
}

入出力結果(Terminal)

$ ls *.bak
ls: *.bak: No such file or directory
$ ./sample.pl sample.pl
$ cat sample.pl.bak sample.pl
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';

my %files;

for(@ARGV){
  $files{$_} = 1;
}
while(<>){
  delete $files{$ARGV} if /^## Copyright/;
}
@ARGV = keys %files;
$^I = ".bak";
while(<>){
  if(/^#!/){
    $_ .= "## Copyright (C) 2012 by kamimura\n";
  }
  print $_;
}
#!/usr/bin/env perl
## Copyright (C) 2012 by kamimura
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';

my %files;

for(@ARGV){
  $files{$_} = 1;
}
while(<>){
  delete $files{$ARGV} if /^## Copyright/;
}
@ARGV = keys %files;
$^I = ".bak";
while(<>){
  if(/^#!/){
    $_ .= "## Copyright (C) 2012 by kamimura\n";
  }
  print $_;
}
$ ./sample.pl sample.pl
$ cat sample.pl
#!/usr/bin/env perl
## Copyright (C) 2012 by kamimura
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';

my %files;

for(@ARGV){
  $files{$_} = 1;
}
while(<>){
  delete $files{$ARGV} if /^## Copyright/;
}
@ARGV = keys %files;
$^I = ".bak";
while(<>){
  if(/^#!/){
    $_ .= "## Copyright (C) 2012 by kamimura\n";
  }
  print $_;
}

0 コメント:

コメントを投稿