#!/usr/bin/perl $filename ="problems.dat"; $MAXLINES=23; open(PROBLEMS, "< $filename") || die ("couldn't open $filename: $!\n"); @filecontents =; close(PROBLEMS); my @zadachi; my $line; # parsing the file for $line (0..@filecontents) { $filecontents[$line] =~ s/\s//; @{$zadachi[$line]}=split(/\,/, $filecontents[$line]); # print "$filecontents[$line]\n"; # print "${$zadachi[$line]}[2]\n"; } my $filelength=scalar(@zadachi); # print "file length is $filelength\n"; my @oldzadachi=@zadachi; @zadachi=(); for $line (0..$filelength) { my $numzadach=scalar(@{$oldzadachi[$line]}); # print "line is $line, numzadach is $numzadach\n"; if ($numzadach) { # print "Pushing $line to zadachi\n"; push(@zadachi,@oldzadachi[$line]); } } my $numlines=scalar(@zadachi)-1; # print "We finished parsing now... there are $numlines lines\n"; for $i (0..$MAXLINES) { print "\#$i:\t"; for $line (0..$numlines) { $invalid=1; $numzad=scalar(@{$zadachi[$line]}); while ($invalid) { # print "zadachi is $numzad, line is $line, numlines=$numlines\n"; $num=int(rand($numzad)); $morenum=int(rand($numzad)); # $moremorenum=int(rand($numzad)); # print "$num, $morenum\n"; $invalid=($num >= $morenum); } print " ${$zadachi[$line]}[$num]\t${$zadachi[$line]}[$morenum]\t"; } print "\n"; print "\n"; print "\n"; }