HTTP::Headers::Util man page on OpenServer

Man page or keyword search:  
man Server   5388 pages
apropos Keyword Search (all sections)
Output format
OpenServer logo
[printable version]

HTTP::Headers::Util(3)User Contributed Perl DocumentatioHTTP::Headers::Util(3)

NAME
       HTTP::Headers::Util - Header value parsing utility functions

SYNOPSIS
	 use HTTP::Headers::Util qw(split_header_words);
	 @values = split_header_words($h->header("Content-Type"));

DESCRIPTION
       This module provides a few functions that helps parsing and construc-
       tion of valid HTTP header values.  None of the functions are exported
       by default.

       The following functions are available:

       split_header_words( @header_values )
	   This function will parse the header values given as argument into a
	   list of anonymous arrays containing key/value pairs.	 The function
	   knows how to deal with ",", ";" and "=" as well as quoted values
	   after "=".  A list of space separated tokens are parsed as if they
	   were separated by ";".

	   If the @header_values passed as argument contains multiple values,
	   then they are treated as if they were a single value separated by
	   comma ",".

	   This means that this function is useful for parsing header fields
	   that follow this syntax (BNF as from the HTTP/1.1 specification,
	   but we relax the requirement for tokens).

	     headers	       = #header
	     header	       = (token | parameter) *( [";"] (token | parameter))

	     token	       = 1*<any CHAR except CTLs or separators>
	     separators	       = "(" | ")" | "<" | ">" | "@"
			       | "," | ";" | ":" | "\" | <">
			       | "/" | "[" | "]" | "?" | "="
			       | "{" | "}" | SP | HT

	     quoted-string     = ( <"> *(qdtext | quoted-pair ) <"> )
	     qdtext	       = <any TEXT except <">>
	     quoted-pair       = "\" CHAR

	     parameter	       = attribute "=" value
	     attribute	       = token
	     value	       = token | quoted-string

	   Each header is represented by an anonymous array of key/value
	   pairs.  The value for a simple token (not part of a parameter) is
	   "undef".  Syntactically incorrect headers will not necessary be
	   parsed as you would want.

	   This is easier to describe with some examples:

	      split_header_words('foo="bar"; port="80,81"; discard, bar=baz');
	      split_header_words('text/html; charset="iso-8859-1"');
	      split_header_words('Basic realm="\\"foo\\\\bar\\""');

	   will return

	      [foo=>'bar', port=>'80,81', discard=> undef], [bar=>'baz' ]
	      ['text/html' => undef, charset => 'iso-8859-1']
	      [Basic => undef, realm => "\"foo\\bar\""]

       join_header_words( @arrays )
	   This will do the opposite of the conversion done by
	   split_header_words().  It takes a list of anonymous arrays as argu-
	   ments (or a list of key/value pairs) and produces a single header
	   value.  Attribute values are quoted if needed.

	   Example:

	      join_header_words(["text/plain" => undef, charset => "iso-8859/1"]);
	      join_header_words("text/plain" => undef, charset => "iso-8859/1");

	   will both return the string:

	      text/plain; charset="iso-8859/1"

COPYRIGHT
       Copyright 1997-1998, Gisle Aas

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.8.8			  2004-04-06		HTTP::Headers::Util(3)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server OpenServer

List of man pages available for OpenServer

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net