創造工学の導入実験で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 らしい節操のない書き方は、説明を避けた。
 

2015年12月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

アーカイブ

Google

このブログ記事について

このページは、T-Saitohが2011年4月27日 00:23に書いたブログ記事です。

ひとつ前のブログ記事は「数値の型とN進数」です。

次のブログ記事は「再帰処理の速度分析」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。