use POSIX; while(){ chomp; ($l, $r)=split/ /; printf "[%2d %2d] ", $l, $r; for $i(-9..10){ $i or print "|"; printf "%2d ", floor (($i - $l ) / ($r - $l +1 )) <=> 0 } print "\n" } __DATA__ 1 4 2 5 3 7 0 3 -1 5 -8 -2 #### [ 1 4] -1 -1 -1 -1 -1 -1 -1 -1 -1 |-1 0 0 0 0 1 1 1 1 1 1 [ 2 5] -1 -1 -1 -1 -1 -1 -1 -1 -1 |-1 -1 0 0 0 0 1 1 1 1 1 [ 3 7] -1 -1 -1 -1 -1 -1 -1 -1 -1 |-1 -1 -1 0 0 0 0 0 1 1 1 [ 0 3] -1 -1 -1 -1 -1 -1 -1 -1 -1 | 0 0 0 0 1 1 1 1 1 1 1 [-1 5] -1 -1 -1 -1 -1 -1 -1 -1 0 | 0 0 0 0 0 0 1 1 1 1 1 [-8 -2] -1 0 0 0 0 0 0 0 1 | 1 1 1 1 1 1 1 1 1 1 1