ホーム » スタッフ » 斉藤徹 » 講義録 » 創造工学演習 » 創造工学の導入実験でPerlと正規表現

2011年4月
« 3月   5月 »
 12
3456789
10111213141516
17181920212223
24252627282930

最近の投稿(電子情報)

アーカイブ

カテゴリー

創造工学の導入実験でPerlと正規表現

4年の前期実験では、2週分を創造工学でのシステム作りの導入とするための、 基礎実験を行っている。クラスを3グループに分け、私の担当は初回にPHPによる、 Webプログラミングの説明。これにより簡単な掲示板やアンケートを作ってもらった。

2回目の今日は、1日実験でPerlと正規表現の実験を行った。 最初に、超単純英語によるBot作りをネタに、Perlの基本文法と、正規表現を体験してもらう。 理解度が速い人向けに、後半はメールデータを題材にしながら、 Jcode.pmを用いた文字コード変換、headerのmime_decodeを説明し、 このメールデータの中から、From,Toの部分を抽出するプログラムを作ってもらう。

#!/usr/bin/perl
# 超基本英語によるBot
while( <> ) {
   $line = $_ ;
   if ( $line =~ /like/ ) {
      if ( $line =~ /^(.*)\s+like(|s)\s+(.*)\.$/ ) {
         print "$1 は $3 が好きです。\n" ;
      }
   }
}
#!/usr/bin/perl
# メールデータの文字コード変換
use Jcode ;
my $head = 1 ;
while( <> ) {
   $line = $_ ;
   if ( $head ) {
      print Jcode->new( $line )->mime_decode->utf8 ;
      if ( $line =~ /^$/ ) {
         $head = 0 ;
      }
   } else {
      print Jcode->new( $line )->utf8 ;
   }
}

Perlを初めて使ってもらうので、 暗黙変数$_とのマッチングや、 「式 if ( 条件 ) ;」といった Perl らしい節操のない書き方は、説明を避けた。