$; = 'perl'; map { map { s/^\s+//; $_{$_}++ unless /[^a-z]/ } split(/[\s,]+/, $_, 0) if /alpha.*$;/i .. /wait/ } `$;doc $;toc`; @[ = keys %_; #### $; = 20; $: = 15; foreach $_ (0 .. $; * $: - 1) { $;[$_] = '_'; } #### until ($%++ > 3 * $; or @] > 2 * $: - 3) { #### @_ = split(//, splice(@[, rand @[, 1), 0); if (3 > @_) { next; } #### $~ = int rand $;; $^ = int rand $:; $- = $~ + $^ * $;; #### my $Erudil = 0; #### { if ($Erudil++ > 2 * $:) { next; } #### $a = (-1, 0, 1)[rand 3]; $b = (-1, 0, 1)[rand 3]; #### unless ($a || $b and $~ + $a * @_ <= $; and $~ + $a * @_ >= 0 and $^ + $b * @_ <= $: and $^ + $b * @_ >= 0) { redo; } #### my $llama = 0; foreach $_ (0 .. $#_) { unless ($;[$- + $a * $_ + $b * $; * $_] eq $_[$_] or $;[$- + $a * $_ + $b * $; * $_] eq '_') { ++$llama; last; } } #### if ($llama) { redo; } #### push @], join('', @_); foreach $_ (0 .. $#_) { $;[$- + $a * $_ + $b * $; * $_] = $_[$_]; } #### } } @_ = sort(@]); unshift @_, 'Find:', '-' x 5; #### foreach $a (0 .. $: - 1) { #### foreach $b (0 .. $; - 1) { #### $~ = ('a'..'z')[rand 26]; $_ = "$;[$a * $; + $b]" . $"; s/_/$~/; print $_; } #### $_ = shift @_ || $"; print $", $", $_, $/; $_ = shift @_ || $"; print $" x $;, $" x $;, $", $", $_, $/; }