The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl extension CGI::Header.

0.11  Dec 16th, 2012
  - Add FIRSTKEY() and NEXTKEY(). These methods were implemented to
    test this module itself.
  - flatten() receives optional $is_recursive argument
    which determines whether to flatten the Set-Cookie headers recursively.
    $is_recursive defaults to true.
  - flatten() and each() don't stringify CGI::Cookie objects.
  - field_names() returns a list of field names in a random order

0.10  Dec 14th, 2012
  - p3p_tags() returns the number of P3P tags
    instead of the first element in scalar context
  - rehash() returns the current object itself:
      my @headers = CGI::Header->new(@args)->rehash->flatten;
  - each() doesn't depend on field_names().
    field_names() depends on each().
    As a result, if Set-Cookie header is multi-valued,
    field_names() will return a list which contains duplicate values.
    I don't know how to solve this problem at this time.

0.09  Nov 13th, 2012
  - CGI.pm has charset() attribute which defaults to 'ISO-8859-1'.
    CGI::header() function depends on this attribute.
    I noticed this module depends on the default value, 'ISO-8859-1',
    and so decided to remove this dependency because this module
    shouldn't depend on the internal state of CGI.pm.
    Namely,
        my $h = CGI::Header->new( -type => 'text/plain' );
        $h->get( 'Content-Type' ); # => "text/plain; charset=ISO-8859-1"
    become
        $h->get( 'Content-Type' ); # => "text/plain"

0.08  Nov 13th, 2012
  - reimplemented rehash()
  - [DOCUMENTATION] add header() to "INSTANCE METHODS"
  - [DOCUMENTATION] describe how this module normalizes parameter names

0.07  Nov 12th, 2012
  - [DOCUMENTATION] add "tie() INTERFACE"

0.06  Nov 11th, 2012
  - First release

0.05  Nov 10th, 2012
  - add rehash() method which rebuilds header hash references

0.04  Nov 7th, 2012
  - reorganized tests using subtest() function exported by Test::More
  - doesn't overload '""' (stringify) with as_string()
    because this module isn't the replacement of CGI::header() function.
    I think CGI::header() should be used to stringify
    header hash references in most cases.
  - each() doesn't stringify values (cf. HTTP::Headers->scan),
    and so the callback function will receive raw CGI::Cookie objects.
  - On the other hand, flatten() forces stringification.
    flatten() may be called to generate PSGI-compatible header array
    references.

0.03  Oct 7th, 2012
  - add a benchmark against HTTP::Parser::XS
  - update POD
  - add t/server.t
  - tests require CGI.pm 3.51 because the distribution contains t/headers.t

0.02  Oct 4th, 2012
  - tests require CGI.pm 3.60 and HTTP::Date
  - fix typo

0.01  Sep 23rd, 2012
  - Forked from Blosxom::Header