) { chomp; my ($a, $b) = split / /, $_; $map->{$a} ||= $b; } close F; } BEGIN { for my $f ("hiragana", "katakana") { load(\%map, $f); load(\%map2, "$f-2"); } } sub romaji { my ($x) = @_; for my $a (keys %map2) { $x =~ s/$a/$map2{$a}/g; } for my $a (keys %map) { $x =~ s/$a/$map{$a}/g; } return $x; } s/\[(.*)\]/"[$1] [".romaji($1)."]"/e '