open SRC, "$source"; open IDX, ">$source.offset"; binmode IDX; while() { print IDX pack 'N', tell SRC; } #### use CGI; $source = $INC{'CGI.pm'}; #### my $line = 2990; open IDX, "$source.offset"; binmode IDX; seek IDX, 4 * ($line - 2), 0; read IDX, my($packed), 4; $offset = unpack 'N', $packed; open SRC, "$source"; seek SRC, $offset, 0; print "Line $line is:\n", scalar ;