+# XXX We should probably accept /dev/stdin or maybe magic autodetection of +# being supposed to get the patch from stdin. +#
Can we just set $diff to '-' if @ARGV is empty?
+# In any case if we got the diff on stdin then write the ChangeLog to stdout.
Hm, this is breaks semantics: you only dump CL instead of CL+diff just because diff comes from stdin. Perhaps we could append contents of @diff_lines here?
+if ($diff == "-") {
This will work but 'eq' is preferred way to compare strings. -Y