#!/usr/bin/perl -w use strict; undef $/; my @body = =~ /(.)/sg; my %index_for; push @{$index_for{$body[$_]}}, $_ for 0 .. $#body; my @idx = map $_->[rand @$_], map +($index_for{$_} || [ @body + 1 ]), (<> =~ /(.)/sg); print << "END"; \$/ = \\1; print +()[qw(@idx)]; __DATA__ @{[ join '', @body ]} END __DATA__ You cannot pass,' he said. The orcs stood still and a silence fell. `I am a servant of the Secret Fire, wielder of the Flame of Anor. You cannot pass. The dark fire will not avail you, flame of Udun.