2012年6月12日火曜日

開発環境

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

5.

やり方の1つ。(「やり方は何通りもある」(TIMTOWTDI(There Is More Than One Way To Do It.)))

コード(TextWrangler)

#!/usr/bin/env perl
## Copyright (c) 2012 by kamimura
use strict;
use warnings;

my %copyright;
for(@ARGV){
  $copyright{$_} = 1;
}

while(<>){
  delete $copyright{$ARGV} if /^## Copyright/;
}

exit unless %copyright;
@ARGV = keys %copyright;
$^I = ".bak";

while(<>){
  $_.= "## Copyright (c) 2012 by kamimura\n" if /^#!/;
  print;
}

入出力結果(Terminal)

$ ./sample.pl sample.pl
$ cat sample.pl
#!/usr/bin/env perl
## Copyright (c) 2012 by kamimura
use strict;
use warnings;

my %copyright;
for(@ARGV){
  $copyright{$_} = 1;
}

while(<>){
  delete $copyright{$ARGV} if /^## Copyright/;
}

exit unless %copyright;
@ARGV = keys %copyright;
$^I = ".bak";

while(<>){
  $_.= "## Copyright (c) 2012 by kamimura\n" if /^#!/;
  print;
}
$ ./sample.pl sample.pl
$ cat sample.pl
#!/usr/bin/env perl
## Copyright (c) 2012 by kamimura
use strict;
use warnings;

my %copyright;
for(@ARGV){
  $copyright{$_} = 1;
}

while(<>){
  delete $copyright{$ARGV} if /^## Copyright/;
}

exit unless %copyright;
@ARGV = keys %copyright;
$^I = ".bak";

while(<>){
  $_.= "## Copyright (c) 2012 by kamimura\n" if /^#!/;
  print;
}

0 コメント:

コメントを投稿