開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Perl
『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の9章(正規表現によるテキスト処理)、9.6(練習問題)5を解いてみる。
5.
コード(TextWrangler)
sample.pl
#!/usr/bin/env perl
## Copyright (C) 2012 by kamimura
use strict;
use warnings;
use utf8;
use 5.012;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';
my %files = ();
$files{$_} = 1 for @ARGV;
while(<>){
delete $files{$ARGV} if /^## Copyright/;
}
@ARGV = keys %files;
$^I = ".bak";
while(<>){
$_.= "## Copyright (C) 2012 by kamimura\n" if /^#!/;
print;
}
入出力結果(Terminal)
$ cat sample.pl
#!/usr/bin/env perl
## Copyright (C) 2012 by kamimura
use strict;
use warnings;
use utf8;
use 5.012;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';
my %files = ();
$files{$_} = 1 for @ARGV;
while(<>){
delete $files{$ARGV} if /^## Copyright/;
}
@ARGV = keys %files;
$^I = ".bak";
while(<>){
$_.= "## Copyright (C) 2012 by kamimura\n" if /^#!/;
print;
}
$ cat sample.pl.bak
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.012;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';
$^I = ".bak";
while(<>){
$_.= "## Copyright (C) 2012 by kamimura\n" if /^#!/;
print;
}
$ ./sample.pl sample.pl*
$ cat sample.pl sample.pl.bak
#!/usr/bin/env perl
## Copyright (C) 2012 by kamimura
use strict;
use warnings;
use utf8;
use 5.012;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';
my %files = ();
$files{$_} = 1 for @ARGV;
while(<>){
delete $files{$ARGV} if /^## Copyright/;
}
@ARGV = keys %files;
$^I = ".bak";
while(<>){
$_.= "## Copyright (C) 2012 by kamimura\n" if /^#!/;
print;
}
#!/usr/bin/env perl
## Copyright (C) 2012 by kamimura
use strict;
use warnings;
use utf8;
use 5.012;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';
$^I = ".bak";
while(<>){
$_.= "## Copyright (C) 2012 by kamimura\n" if /^#!/;
print;
}
$
0 コメント:
コメントを投稿