use utf8; use Filter::Pyuuta;

| コメント(1)

use utf8; とすればスクリプトの中でUTF8が使える、という話を The Perl Journalの Simon Cozen 氏の記事 Ten Things You (Probably) Didn't Know About Perlで見かけた。どれどれ、と 変数名と関数名にUTF8を使ってスクリプトを書いてみた。(「package My::ひと;」は使えませんね「package My::ひと;」を使うには それより前で「use utf8;」すると良いようです(Inaba Hirotoさん情報。ありがとうございます))

package My::Person;
use utf8;
sub 新 {
    my $抽象的な名前 = shift;
    my %おぷちょん = @_;
    my $化身 = bless { なまえ => $おぷちょん{なまえ},
                       うまれ => $おぷちょん{うまれ} }, $抽象的な名前;
    return $化身;
}
sub なまえ {
    my $化身 = shift;
    return $化身->{なまえ};
}

package main;
my $せっきー = My::Person->新(なまえ => "Masayoshi Sekimura",
                              うまれ => "Hokkaido");

print $せっきー->なまえ,"\n";

実行した。

$ perl -w -Mstrict use_utf8.pl
Masayoshi Sekimura

驚いた。さらに、Filter::Pyuuta を思い出してしまったので悪ノリしてみた。

package My::Person;
use utf8;
use Filter::Pyuuta;

sub 新 {
    ここだけの話 $抽象的な名前 = 引っこ抜く;
    ここだけの話 %おぷちょん = @_;
    ここだけの話 $化身 = お清めをする { なまえ => $おぷちょん{なまえ},
                                 うまれ => $おぷちょん{うまれ} }, $抽象的な名前;
    戻る $化身;
}
sub なまえ {
    my $化身 = shift;
    戻る $化身->{なまえ};
}

package main;
ここだけの話 $せっきー = My::Person->新(なまえ => "Masayoshi Sekimura",
                                        うまれ => "Hokkaido");

書く $せっきー->なまえ,"\n";

「ここだけの話」がブログ女王の接頭辞になりつつあるこのご時世、トラックバックがたくさんやってきそうなスクリプトになりました。(Filter::Pyuuta は EUC-JP から UTF-8 に変換する必要があります。あと shift と bless をmapに追加しないといけません)

1 Comments
Inaba Hiroto :

package ... より use utf8 を先にすればパッケージ名もUTF-8でかけますよ。

コメントする