"あ"を"ぁ"に変換するスクリプト

30分プログラム、その637。"あ"を"ぁ"に変換するスクリプトを書いてみた。特に意味はない。
"A"を"a"にする関数があるんなら、"あ"を"ぁ"にする関数があってもいいんじゃない?と思ったのでやってみた。
最初は、文字単位に分割してmapするとか、正規表現を使って置き換えるとか考えていたけど、途中でtrを使えばいいことに気がついた。

使い方

$ perl lc.pl HELLO,WORLD
hello,world
$ perl lc.pl こんにちは、せかい
こんにちは、せかぃ

ソースコード

#! /usr/bin/perl
# -*- mode:perl; coding:utf-8 -*-
#
# downcase.pl -
#
# Copyright(C) 2009 by mzp
# Author: MIZUNO Hiroki / mzpppp at gmail dot com
# http://howdyworld.org
#
# Timestamp: 2009/08/11 22:00:37
#
# This program is free software; you can redistribute it and/or
# modify it under MIT Lincence.
#

use strict;
use warnings;
use utf8;
use charnames qw/:full/;
use Data::Dumper;
use Encode;

our %table = (
    'あ' => 'ぁ',
    'い' => 'ぃ',
    'う' => 'ぅ',
    'え' => 'ぇ',
    'お' => 'ぉ',
    'や' => 'ゃ',
    'ゆ' => 'ゅ',
    'よ' => 'ょ',
    'わ' => 'ゎ'
);

sub jlc($){
    my ($s) = @_;
    my $from = join '',keys   %table;
    my $to   = join '',values %table;

    $s = lc $s;
    eval "\$s =~ tr/$from/$to/";
    $s;
}

for(@ARGV){
    print encode('utf8',jlc(decode('utf8',$_))),"\n";
}