35 lines
716 B
Perl
35 lines
716 B
Perl
|
#!/usr/local/bin/perl
|
||
|
|
||
|
# get args
|
||
|
if (@ARGV < 3) {
|
||
|
print STDERR "Usage: $0 base_name start stop max_test [ratings ...]\n";
|
||
|
exit 1;
|
||
|
}
|
||
|
$basename = shift;
|
||
|
$start = shift;
|
||
|
$stop = shift;
|
||
|
$maxtest = shift;
|
||
|
|
||
|
# open files
|
||
|
open( TESTFILE, ">$basename.test" ) or die "Cannot open $basename.test for writing\n";
|
||
|
open( BASEFILE, ">$basename.base" ) or die "Cannot open $basename.base for writing\n";
|
||
|
|
||
|
# init variables
|
||
|
$testcnt = 0;
|
||
|
|
||
|
while (<>) {
|
||
|
($user) = split;
|
||
|
if (! defined $ratingcnt{$user}) {
|
||
|
$ratingcnt{$user} = 0;
|
||
|
}
|
||
|
++$ratingcnt{$user};
|
||
|
if (($testcnt < $maxtest || $maxtest <= 0)
|
||
|
&& $ratingcnt{$user} >= $start && $ratingcnt{$user} <= $stop) {
|
||
|
++$testcnt;
|
||
|
print TESTFILE;
|
||
|
}
|
||
|
else {
|
||
|
print BASEFILE;
|
||
|
}
|
||
|
}
|