2011年7月15日金曜日

開発環境

  • 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) の17章(上級テクニック), 17.6(練習問題)、1を解いてみる。

 

1.

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

コード(TextWrangler)

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

open FILE,"sample_text";
chomp(my @list=<FILE>);
while(1){
  print "パターンを入力\n";
  chomp(my $str=<STDIN>);
  last if $str=~/^\s*$/;
  my @matches=eval{
    grep /$str/,@list;
    };
  if($@){
    print "An error occurred ($@), continuing\n";
  }else{
    my $count=@matches;
    print "マッチした個数: $count\n";
    print map "$_\n",@matches;
  }
}

入出力結果(Ternimal)

evalでちゃんと正規表現のエラーをトラップできたみたい。

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

0 コメント:

コメントを投稿