#!/usr/bin/perl # Random ASCII stereogram generator # Copyright 2008 Alexander Curtis # $period = 15; @m = ( "555555555555555555555555555555555555555555555555555555555555555555", "555555555555555555555555555555555555555555555555555555555555555555", "555555555555555555555555555555555555555555555555555555555555555555", "555555555555555555555555555555555555555555555555555555555555555555", "555555555555555555555555555555555665555555555555555555555555555555", "555555555555555555555555665555555665555556655555555555555555555555", "555555555555555555555555665555555566555556655555555555555555555555", "555555555555555555555555566555555556655555665555555555555555555555", "555555555555555555555555556655555556655555566555555555555555555555", "555555555555555555555555556655555566555555566555555555555555555555", "555555555555555555555555566555555665555555665555555555555555555555", "555555555555555555555555665555555665555556655555555555555555555555", "555555555555555555555555555555555555555555555555555555555555555555", "555555555555555555555666666666666666666666666655555555555555555555", "555555555555555556665666666666666666666666666655555555555555555555", "555555555555555666556666666666666666666666666655555555555555555555", "555555555555555665555566666666666666666666666555555555555555555555", "555555555555555665555566666666666666666666666555555555555555555555", "555555555555555566655666666666666666666666665555555555555555555555", "555555555555555555666656666666666666666666665555555555555555555555", "555555555555555555555555566666666666666666555555555555555555555555", "555555555555556666665555555556666666665555555556666665555555555555", "5555555555555555556666666666666666666666666666666555555555555555555", "555555555555555555555555555555555555555555555555555555555555555555", "555555555555555555555555555555555555555555555555555555555555555555", "555555555555555555555555555555555555555555555555555555555555555555", "555555555555555555555555555555555555555555555555555555555555555555", "555555555555555555555555555555555555555555555555555555555555555555" ); foreach $mm (@m) { my $string = ""; my $l = length( $mm ); my $dd = 0; my $i; for( $i=0; $i<$l; ++$i ) { my $e; my $c = substr( $mm, $i, 1 ); my $d = 5 - $c; if( $d>$dd ) { $e = rch(); } else { my $ll = length( $string ); my $ix = $i - $d - $period; if( $ix < 0 || $ix > $ll ) # index out of bounds { $e = rch(); } else { $e = substr( $string, $i-$d-$period, 1 ); } } $string .= $e; $dd = $d; } print "$string\n"; } sub rch { my $a = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; my $e = substr( $a, int( rand( length( $a ) ) ), 1 ); return $e; }