The changelog file that is parsed is debian/changelog by default but it can be overridden with $opt{file}. The default output format is ``dpkg'' but it can be overridden with $opt{format}.
The parsing itself is done by Dpkg::Changelog::Debian.
The parsing itself is done by an external program (searched in the following list of directories: $opt{libdir}, /usr/local/lib/dpkg/parsechangelog, /usr/lib/dpkg/parsechangelog). That program is named according to the format that it is able to parse. By default it is either ``debian'' or the format name looked up in the 40 last lines of the changelog itself (extracted with this perl regular expression ``\schangelog-format:\s+([0-9a-z]+)\W''). But it can be overridden with $opt{changelogformat}. The program expects the content of the changelog file on its standard input.
The changelog file that is parsed is debian/changelog by default but it can be overridden with $opt{file}.
All the other keys in %opt are forwarded as parameter to the external parser. If the key starts with ``-'', it is passed as is. If not, it is passed as ``--<key>''. If the value of the corresponding hash entry is defined, then it is passed as the parameter that follows.
If $opt{forceplugin} is false and $opt{changelogformat} is ``debian'', then changelog_parse_debian() is called to perform the parsing. Otherwise changelog_parse_plugin() is used.
The changelog file that is parsed is debian/changelog by default but it can be overridden with $opt{file}.