2012年3月18日日曜日

開発環境

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

3.

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

コード(TextWrangler)

#!/usr/bin/env perl
use strict;
use warnings;

$^I = ".bak";
while (<>){
  $_ .= "## (C) 20XX by kamimura\n" if /^#!/;
  print;
}

入出力結果(Terminal)

$ ./perl_program perl_program
$ cat perl_program
#!/usr/bin/env perl
## (C) 20XX by kamimura
use strict;
use warnings;

$^I = ".bak";
while (<>){
  $_ .= "## (C) 20XX by kamimura\n" if /^#!/;
  print;
}
$ cat perl_program.bak
#!/usr/bin/env perl
use strict;
use warnings;

$^I = ".bak";
while (<>){
  $_ .= "## (C) 20XX by kamimura\n" if /^#!/;
  print;
}
$

上手くバックアップした上でコピーライトを書き加えることが出来た。

せっかくなので一度削除してコマンドラインに直接書ける1行プログラムでも。

入出力結果(Terminal)

$ cat perl_program
#!/usr/bin/env perl
use strict;
use warnings;

$^I = ".bak";
while (<>){
  $_ .= "## (C) 20XX by kamimura\n" if /^#!/;
  print;
}
$ perl -p -i.bak -w -e '$_.="## Copyright (C) 20XX by kamimura\n" if /^#!/' perl_program
$ cat perl_program
#!/usr/bin/env perl
## Copyright (C) 20XX by kamimura
use strict;
use warnings;

$^I = ".bak";
while (<>){
  $_ .= "## (C) 20XX by kamimura\n" if /^#!/;
  print;
}
$

0 コメント:

コメントを投稿