#!/usr/bin/perl -w &init; &get_form; &put_page; ################################################################## sub init { $lang = 'jp'; $0 =~ /([^\/]+)$/; $self = $1; $perm_max = 10; $perm[0] = ""; # for 1-origin } sub get_form { $random = 0; while(<>) { foreach $i (split(/&/)) { if ( $i =~ /^(\d+)=(.*)/ ) { $perm_input[$1] = $2; } elsif ( $i =~ /^RANDOM=/ ) { $random = 1; } else { print STDERR $i."\n"; } } } if ( $random == 0 && $perm_input[1] ) { # 正規化しながら $perm_input[] -> $perm[] $current = 1; for ( $i=1; $i<=$perm_max; $i++ ) { for ( $j=1; $j<=$perm_max; $j++ ) { if ( $perm_input[$j] == $i ) { $perm[$j] = $current++; } } } } else { # 入力なし/乱数指定ありなら乱数で生成 for ( $i=1; $i<=$perm_max; $i++ ) { $perm[$i] = $i; } for ( $i=1; $i<=$perm_max; $i++ ) { $j = 1 + rand $perm_max; $tmp = $perm[$j]; $perm[$j] = $perm[$i]; $perm[$i] = $tmp; } } } sub put_page { open( OUT, "| ./common_interval | ./common_interval.pl $self $lang @perm" ); print OUT "$perm_max CGI\n"; for ( $i=1; $i<=$perm_max; $i++ ) { print OUT "$i "; } print OUT "\n"; for ( $i=1; $i<=$perm_max; $i++ ) { print OUT "$perm[$i] "; } print OUT "\n"; close( OUT ); }