開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Perl
『初めてのPerl 第5版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-427-9)の9章(正規表現によるテキスト処理), 9.6(練習問題)4を解いてみる。
4.
やり方の1つ。(「やり方は何通りもある」(TIMTOWTDI(There Is More Than One Way To Do It.)))
コード(TextWrangler)
#!/usr/bin/env perl use strict; use warnings; my %hash; for(@ARGV){ $hash{$_} = 1; } while(<>){ delete $hash{$ARGV} if /^## Copyright/; } @ARGV = keys %hash; $^I = ".bak"; while (<>){ $_ .= "## Copyright (C) 20XX by kamimura\n" if /^#!/; print; }
既にコピーライト表示が入っているファイル、perl_program1
#!/usr/bin/env perl ## Copyright (C) 20XX by kamimura use strict; use warnings; my %hash; for(@ARGV){ $hash{$_} = 1; } while(<>){ delete $hash{$ARGV} if /^## Copyright/; } @ARGV = keys %hash; $^I = ".bak"; while (<>){ $_ .= "## Copyright (C) 20XX by kamimura\n" if /^#!/; print; }
入出力結果(Terminal)
$ ./perl_program perl_program perl_program1 $ cat perl_program perl_program1 #!/usr/bin/env perl ## Copyright (C) 20XX by kamimura use strict; use warnings; my %hash; for(@ARGV){ $hash{$_} = 1; } while(<>){ delete $hash{$ARGV} if /^## Copyright/; } @ARGV = keys %hash; $^I = ".bak"; while (<>){ $_ .= "## Copyright (C) 20XX by kamimura\n" if /^#!/; print; } #!/usr/bin/env perl ## Copyright (C) 20XX by kamimura use strict; use warnings; my %hash; for(@ARGV){ $hash{$_} = 1; } while(<>){ delete $hash{$ARGV} if /^## Copyright/; } @ARGV = keys %hash; $^I = ".bak"; while (<>){ $_ .= "## Copyright (C) 20XX by kamimura\n" if /^#!/; print; }
0 コメント:
コメントを投稿