Skip to content

Instantly share code, notes, and snippets.

@hakobe
Created May 11, 2009 02:29
Show Gist options
  • Select an option

  • Save hakobe/109840 to your computer and use it in GitHub Desktop.

Select an option

Save hakobe/109840 to your computer and use it in GitHub Desktop.
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