use HTTP::Request; #### BEGIN { use HTTP::Request; $HTTP::Headers::TRANSLATE_UNDERSCORE = 0; } #### #!/usr/bin/env perl -l use strict; use warnings; BEGIN { use HTTP::Request; $HTTP::Headers::TRANSLATE_UNDERSCORE = 0; } use Data::Dump; my $r = HTTP::Request->new; my $header = $r->header('__X_Y__', 1); dd $r; #### bless({ _content => "", _headers => bless({ "--x-y--" => 1, "::std_case" => { "--x-y--" => "--X-Y--" } }, "HTTP::Headers"), _method => undef, _uri => undef, }, "HTTP::Request") #### bless({ _content => "", _headers => bless({ "::std_case" => { __x_y__ => "__X_Y__" }, "__x_y__" => 1 }, "HTTP::Headers"), _method => undef, _uri => undef, }, "HTTP::Request") #### ... # The $TRANSLATE_UNDERSCORE variable controls whether '_' can be used # as a replacement for '-' in header field names. our $TRANSLATE_UNDERSCORE = 1 unless defined $TRANSLATE_UNDERSCORE; ... $field =~ tr/_/-/ if $TRANSLATE_UNDERSCORE; ...