package WWW::Mechanize::WithHeaders; use base 'WWW::Mechanize'; use constant REQUEST => 'Request'; use constant RESPONSE => 'Response'; sub _make_request { my $self = shift; $self->_show_headers(REQUEST, $_[0]->as_string); my $response = $self->SUPER::_make_request(@_); $self->_show_headers(RESPONSE, $response->as_string); return $response; } sub _show_headers { my ($self, $type, $headers) = @_; if (RESPONSE eq $type) { $headers =~ s/\n\n.*$/\n\n/s; # strip body } else { $headers .= "\n"; # add an extra newline } print "$type:\n\n$headers"; $self; }