GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Parse::MIME(3) User Contributed Perl Documentation Parse::MIME(3)

Parse::MIME - Parse mime-types, match against media ranges

 use Parse::MIME qw( best_match );
 print best_match( [ qw( application/xbel+xml text/xml ) ], 'text/*;q=0.5,*/*; q=0.1' );
 # text/xml

This module provides basic functions for handling mime-types. It can handle matching mime-types against a list of media-ranges. See section 14.1 of the HTTP specification [RFC 2616] for a complete explanation: <http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1>

None of the following functions are exported by default. You can use the ":all" tag to import all of them into your package:

 use Parse::MIME ':all';

Parses a mime-type into its component parts and returns type, subtype and params, where params is a reference to a hash of all the parameters for the media range:

 parse_mime_type 'application/xhtml;q=0.5'
 # ( 'application', 'xhtml', { q => 0.5 } )

Media-ranges are mime-types with wild-cards and a "q" quality parameter. This function works just like "parse_mime_type", but also guarantees that there is a value for "q" in the params hash, supplying the default value if necessary.

 parse_media_range 'application/xhtml'
 # ( 'application', 'xhtml', { q => 1 } )

Media-range lists are comma-separated lists of media ranges. This function works just like "parse_media_range", but accepts a list of media ranges and returns for all of media-ranges.

 my @l = parse_media_range_list 'application/xhtml, text/html;q=0.7'
 # ( 'application', 'xhtml', { q => 1 }, 'text', 'html', { q => 0.7 } )

Find the best match for a given mime-type (passed as the first parameter) against a list of media ranges that have already been parsed by "parse_media_range" (passed as a flat list). Returns the fitness value and the value of the "q" quality parameter of the best match, or "( -1, 0 )" if no match was found.

 # for @l see above
 fitness_and_quality_parsed( 'text/html', @l )
 # ( 110, 0.7 )

Determines the quality ("q") of a mime-type (passed as the first parameter) when compared against a media-range list string. F.ex.:

 quality( 'text/html', 'text/*;q=0.3, text/html;q=0.7, text/html;level=1, text/html;level=2;q=0.4, */*;q=0.5' )
 # 0.7

Just like "quality", except the second parameter must be pre-parsed by "parse_media_range_list".

Choose the mime-type with the highest quality ("q") from a list of candidates. Takes an array of supported mime-types as the first parameter and finds the best match for all the media-ranges listed in header, which is passed as the second parameter. The value of header must be a string that conforms to the format of the HTTP "Accept" header. F.ex.:

 best_match( [ qw( application/xbel+xml text/xml ) ], 'text/*;q=0.5,*/*; q=0.1' )
 # 'text/xml'

Aristotle Pagaltzis <pagaltzis@gmx.de>

This software is copyright (c) 2018 by Aristotle Pagaltzis.

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

2018-08-20 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.