3 package HTTP::Headers::ReadOnly;
4 use base qw/HTTP::Headers/;
13 croak "Can't modify headers after headers have been sent to the client";
17 my ( $self, $field, $val, $op ) = @_;
21 $self->SUPER::_header(@_);
25 for ( @{ Class::Inspector->functions( "HTTP::Headers" ) }) {
27 *$_ = \&_jerk_it if /remove|clear/;
40 HTTP::Headers::ReadOnly - Immutable HTTP::headers
44 my $headers = HTTP::Headers->new(...);
46 bless $headers, "HTTP::Headers::ReadOnly";
48 $headers->content_type( "foo" ); # dies
52 This class blocks write access to a L<HTTP::Headers> object.
54 It is used to raise errors in L<Catalyst> if the header object is modified
55 after C<finalize_headers>.