Acme-EnclosedChar

 view release on metacpan or  search on metacpan

lib/Acme/EnclosedChar.pm  view on Meta::CPAN

package Acme::EnclosedChar;
use strict;
use warnings;
use utf8;
use parent qw/Exporter/;
our @EXPORT_OK = qw/
    enclose
    enclose_katakana
    enclose_week_ja
    enclose_kansuji
    enclose_kanji
    enclose_all
/;

our $VERSION = '0.09';

my %MAP;
{
    my @double_digits = split('', '⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲'
                                . '⑳㉑㉒㉓㉔㉕㉖㉗㉘㉙'
                                . '㉚㉛㉜㉝㉞㉟㊱㊲㊳㊴'
                                . '㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿');
    for my $i (10..50) {
        $MAP{double_digits}->{$i} = shift @double_digits;
    }
}

sub _tr_double_digits {
    for my $dg (keys %{$MAP{double_digits}}) {
        ${$_[0]} =~ s!(^|[^\d])$dg([^\d]|$)!$1$MAP{double_digits}->{$dg}$2!g;
    }
}

sub _tr_numbers {
    ${$_[0]} =~ tr/0123456789/⓪①②③④⑤⑥⑦⑧⑨/;
}

sub _tr_alphabet_uc {
    ${$_[0]} =~ tr/ABCDEFGHIJKLMNOPQRSTUVWXYZ/ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ/;
}

sub _tr_alphabet_lc {
    ${$_[0]} =~ tr/abcdefghijklmnopqrstuvwxyz/ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ/;
}

sub _tr_symbols {
    ${$_[0]} =~ tr/\-\=\+\*/⊖⊜⊕⊛/;
}

sub _tr_katakana {
    ${$_[0]} =~ tr/アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲ/㋐㋑㋒㋓㋔㋕㋖㋗㋘㋙㋚㋛㋜㋝㋞㋟㋠㋡㋢㋣㋤㋥㋦㋧㋨㋩㋪㋫㋬ã‹...
}

sub _tr_week_ja {
    ${$_[0]} =~ tr/月火水木金土日/㊊㊋㊌㊍㊎㊏㊐/;
}

sub _tr_kansuji {
    ${$_[0]} =~ tr/一二三四五六七八九十/㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉/;
}

sub _tr_kanji {
    ${$_[0]} =~ tr/株有社名特財祝労秘男女適優印注頂休写正上中下左右医宗学監企資協夜/㊑㊒㊓㊔㊕㊖㊗㊘㊙㊚㊛㊜㊝㊞㊟㊠㊡㊢㊣㊤㊥㊦㊧㊨㊩㊪㊫㊬㊭㊮㊯㊰/;
}



( run in 0.561 second using v1.01-cache-2.11-cpan-5735350b133 )