2011年6月18日土曜日

開発環境

  • Mac OS X Snow Leopard (OS)
  • TextWrangler(Text Editor) (いずれはBBEditを入手したい!)
  • Script言語:Perl

『初めての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/perl
use strict;
use warnings;

my %file_names;

foreach(@ARGV){
  $file_names{$_}=0;
}

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

@ARGV=keys %file_names;

$^I=".bak";

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

用意したファイル2つ。

sample_text1(コピーライト表示無し)

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

# 以下コード

sample_text2(コピーライト表示有)

#!/usr/bin/perl
## Copyright (C) 20XX by Yours Truly
use strict;
use warnings;

# 以下コード

プログラム実行!

入出力結果(Ternimal)

上記のプログラム実行後のファイル

sample_text1

#!/usr/bin/perl
## Copyright (C) 20XX by Yours Truly
use strict;
use warnings;

# 以下コード

sample_text2

#!/usr/bin/perl
## Copyright (C) 20XX by Yours Truly
use strict;
use warnings;

# 以下コード

sample_text1.bak

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

# 以下コード

コピーライトを表示すること、編集したファイルのバックアップ(コードとmy_program.bakが同じ)をとっておくこと、さらにすでにコピーライトが入っているファイルは編集しないようにすることに成功!.

ファイルの用意が必要な場合はO'Reilly Japan - 初めてのPerl 第5版の関連ファイルのプログラム例に含まれているものを使用しています。

0 コメント:

コメントを投稿