You can determine where values come from just by following the assignments. The cited lines both reference %incoming. %incoming is initialized on the line my %incoming = &read_input;. The subroutine read_input pulls key/value pairs out of some splits performed on either STDIN or $ENV{'QUERY_STRING'} depending on the content of $ENV{'REQUEST_METHOD'}. It seems odd to me that the script manually parses the parameters rather than using CGI's param method.