Created
May 11, 2009 02:29
-
-
Save hakobe/109840 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| use strict; | |
| use warnings; | |
| use Encode; | |
| use Perl6::Slurp; | |
| use Term::Encoding qw(term_encoding); | |
| use List::Util qw(shuffle); | |
| sub _shuffle_word { | |
| my $word = shift; | |
| return $word if length($word) < 2; | |
| while (1) { | |
| my $shuffle_word = join('', shuffle( split(//, $word) )); | |
| return $shuffle_word if $shuffle_word ne $word; | |
| } | |
| } | |
| sub _irekae { | |
| my $word = shift; | |
| return $word if length($word) <= 3; | |
| my ($first, $middle, $last) = $word =~ m/^(.)(.*?)(.)$/; | |
| $first . _shuffle_word($middle) . $last; | |
| } | |
| sub wazato_irekae { | |
| my $text = shift; | |
| join "\n", map { | |
| join ' ', map { _irekae($_) } split(/\s+/, $_) | |
| } split(/\n/, $text); | |
| } | |
| sub process_as_string { | |
| my ($text, $encoding, $code) = @_; | |
| encode($encoding, $code->(decode($encoding, $text))); | |
| } | |
| print process_as_string(scalar(slurp(\*STDIN)), term_encoding(), \&wazato_irekae); | |
| __END__ | |
| わかちがき で かいた にほんご を ことば の はじまり と さいご を へんこう せずに まんなか | |
| を シャッフル します . ほんとう は けいたいそ かいせき して わかちがき も じどうてき に | |
| すれば よい と かんがえて いる の ですが めんどう くさい ので そのうち やります . | |
| || | |
| \/ | |
| わがかちき で かいた にんほご を ことば の はまじり と さいご を へこんう せずに まなんか | |
| を シッャフル します . ほとんう は けたいいそ かせいき して わがちかき も じてどうき に | |
| すれば よい と かがんえて いる の ですが めどんう くさい ので そうのち やまりす . | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment