#!C:\Perl\bin\perl -w
$|++;
print "Content-type: text/html\n\n";
# use strict;
use warnings;
use Time::HiRes;
use threads;
use threads::shared;
my ($doc_top, $doc_middle, $doc_bottom);
$doc_top = "\n";
$doc_top .= "
\n";
$doc_top .= "\n\n";
$doc_top .= "\n";
$doc_top .= "\n\n";
$doc_top .= "\n";
$doc_top .= "\t\n";
$doc_top .= "\t\t\n";
$doc_top .= "\t\t\t\n";
#$doc_top .= "\t\t\t\t\n";
$doc_middle ='';
#$doc_bottom .= "\t\t\t\t \n";
$doc_bottom .= "\t\t\t \n";
$doc_bottom .= "\t\t | \n";
$doc_bottom .= "\t
\n";
$doc_bottom .= "
\n\n";
#$doc_bottom .= "\n";
#$doc_bottom .= "\n";
for ($j = 0; $j <= 22; $j++)
{
$doc_middle .= "\t\t\t\t\n";
for ($i = 0; $i <= 2; $i++)
{
$doc_middle .= "\t\t\t\t\t|   | \n";
}
$doc_middle .= "\t\t\t\t
\n";
}
print $doc_top.$doc_middle.$doc_bottom;
our (@rv, @pauses, @letters) : shared;
#@rv[0,1,2, 3,4,5, 6, 7, 8] = (2, 5, 5,
@rv[0,1,2, 3,4,5, 6, 7, 8] = (int(rand(4))+2, int(rand(4))+2, int(rand(4))+2,
int(rand(4))+2, int(rand(4))+2, int(rand(4))+2,
int(rand(4))+2, int(rand(4))+2, int(rand(4))+2);
#@pauses[0,1,2, 3,4,5, 6, 7, 8] = (0.325543212890625, 0.3333251953125, 0.345562744140625,
@pauses[0,1,2, 3,4,5, 6, 7, 8] = ((rand(1))+.3, (rand(1))+.3, (rand(1))+.3,
(rand(1))+.3, (rand(1))+.3, (rand(1))+.3,
(rand(1))+.3, (rand(1))+.3, (rand(1))+.3);
@letters[0,1,2, 3,4,5, 6,7,8] = ('a','b','c', 'd','e','f', 'g','h','i');
my $cur_right_value;
my $cur_pause;
my $cur_letter;
for($f = 0; $f <= 2; $f++)
{
$cur_right_value = @rv[$f];# print $cur_right_value; print "
\n";
$cur_pause = @pauses[$f]; # print $cur_pause; print "
\n";
$cur_letter = @letters[$f];# print $cur_letter; print "
\n";
print "for current letter $cur_letter repetitions ".($cur_right_value+1)." via pause $cur_pause sec
\n";
$thr = threads->new(sub
{
my $cur_var = 0;
for($cur_var = $cur_var; $cur_var <= $cur_right_value; $cur_var++)
{
print "\n";
if(Time::HiRes::sleep($cur_pause))
{
lock(@rv);
lock(@pauses);
lock(@letters);
}
if($cur_var == $cur_right_value)
{
# print "\$f = $f
\n";
$cur_right_value = @rv[0]+$cur_var;
$cur_pause = @pauses[0];
$cur_letter = @letters[0];
shift @rv; # print @rv; print "
\n";
shift @pauses; # print @pauses; print "
\n";
shift @letters;# print @letters; print "
\n";
}
}
});
}
shift @rv; shift @rv; shift @rv; # print @rv; print "
\n";
shift @pauses; shift @pauses; shift @pauses; # print @pauses; print "
\n";
shift @letters; shift @letters; shift @letters;# print @letters; print "
\n";
$thr->join;
print "@letters
\n";
print "
\n";
print "