=head1 NAME
MIME::Type - Definition of one MIME type
=head1 SYNOPSIS
my
$mimetypes
= MIME::Types->new;
my
MIME::Type
$plaintext
=
$mimetypes
->type(
'text/plain'
);
print
$plaintext
->mediaType;
print
$plaintext
->subType;
my
@ext
=
$plaintext
->extensions;
print
"@ext"
print
$plaintext
->encoding
if
(
$plaintext
->isBinary)
if
(
$plaintext
->isAscii)
if
(
$plaintext
->equals(
'text/plain'
) {...}
if
(
$plaintext
eq
'text/plain'
)
print
MIME::Type->simplified(
'x-appl/x-zip'
)
=head1 DESCRIPTION
MIME types are used in MIME entities,
for
instance as part of e-mail
and HTTP traffic. Sometimes real knowledge about a mime-type is need.
Objects of C<MIME::Type> store the information on one such type.
This module is built to conform to the MIME types of RFC's 2045 and 2231.
It follows the official IANA registry at
=head1 OVERLOADED
overload: B<string comparison>
=over 4
When a MIME::Type object is compared to either a string or an other
MIME::TYpe, the L<equals()|MIME::Type/
"Knowledge"
> method is called. Comparison is smart,
which means that it
extends
common string comparison
with
some
features which are
defined
in the related RFCs.
=back
overload: B<stringification>
=over 4
The stringification (
use
of the object in a place where a string
is required) will result in the type name, the same as L<type()|MIME::Type/
"Attributes"
>
returns.
I<Example:>
use
of stringification
my
$mime
= MIME::Type->new(
'text/html'
);
print
"$mime\n"
;
print
$mime
;
=back
=head1 METHODS
=head2 Initiation
MIME::Type-E<gt>B<new>(OPTIONS)
=over 4
Create (I<instantiate>) a new MIME::Type object which manages one
mime type.
Option --Default
encoding <depends on type>
extensions []
simplified <derived from type>
system
undef
type <required>
.
encoding
=>
'7bit'
|
'8bit'
|
'base64'
|
'quoted-printable'
=over 4
How must this data be encoded to be transported safely. The
default
depends on the type: mimes
with
as main type C<text/> will
default
to C<quoted-printable> and all other to C<base64>.
=back
.
extensions
=> REF-ARRAY
=over 4
An array of extensions which are using this mime.
=back
.
simplified
=> STRING
=over 4
The mime types main- and
sub
-label can both start
with
C<x->, to indicate
that is a non-registered name. Of course,
after
registration this flag
can disappear which adds to the confusion. The simplified string
has
the
C<x-> thingies removed and are translated to lower-case.
=back
.
system
=> REGEX
=over 4
Regular expression which defines
for
which systems this rule is valid. The
REGEX is matched on C<$^O>.
=back
.
type
=> STRING
=over 4
The type which is
defined
here. It consists of a I<type> and a I<
sub
-type>,
both case-insensitive. This module will
return
lower-case, but
accept
upper-case.
=back
=back
=head2 Attributes
$obj
-E<gt>B<encoding>
=over 4
Returns the type of encoding which is required to transport data of this
type safely.
=back
$obj
-E<gt>B<extensions>
=over 4
Returns a list of extensions which are known to be used
for
this
mime type.
=back
$obj
-E<gt>B<simplified>([STRING])
MIME::Type-E<gt>B<simplified>([STRING])
=over 4
Returns the simplified mime type
for
this object or the specified STRING.
Mime type names can get officially registered. Until then, they have to
carry an C<x-> preamble to indicate that. Of course,
after
recognition,
the C<x-> can disappear. In many cases, we prefer the simplified version
of the type.
I<Example:> results of simplified()
my
$mime
= MIME::Type->new(
type
=>
'x-appl/x-zip'
);
print
$mime
->simplified;
print
$mime
->simplified(
'text/plain'
);
print
MIME::Type->simplified(
'x-xyz/x-abc'
);
=back
$obj
-E<gt>B<
system
>
=over 4
Returns the regular expression which can be used to determine whether this
type is active on the
system
where you are working on.
=back
$obj
-E<gt>B<type>
=over 4
Returns the long type of this object,
for
instance C<
'text/plain'
>
=back
=head2 Knowledge
$obj
-E<gt>B<equals>(STRING|MIME)
=over 4
Compare this mime-type object
with
a STRING or other object. In case of
a STRING, simplification will take place.
=back
$obj
-E<gt>B<isAscii>
=over 4
Returns false
when
the encoding is base64, and true otherwise. All encodings
except base64 are text encodings.
=back
$obj
-E<gt>B<isBinary>
=over 4
Returns true
when
the encoding is base64.
=back
$obj
-E<gt>B<isRegistered>
=over 4
Mime-types which are not registered by IANA nor
defined
in RFCs shall
start
with
an C<x->. This counts
for
as well the media-type as the
sub
-type. In case either one of the types starts
with
C<x-> this
method will
return
false.
=back
$obj
-E<gt>B<isSignature>
=over 4
Returns true
when
the type is in the list of known signatures.
=back
$obj
-E<gt>B<mediaType>
=over 4
The media type of the simplified mime.
For C<
'text/plain'
> it will
return
C<
'text'
>.
For historical reasons, the C<
'mainType'
> method still can be used
to retreive the same value. However, that method is deprecated.
=back
$obj
-E<gt>B<subType>
=over 4
The
sub
type of the simplified mime.
For C<
'text/plain'
> it will
return
C<
'plain'
>.
=back
=head1 DIAGNOSTICS
I<Error:> Type parameter is obligatory.
When a L<MIME::Type|MIME::Type> object is created, the type itself must be
specified
with
the C<type> option flag.
=head1 SEE ALSO
This module is part of MIME-Types distribution version 1.20,
=head1 LICENSE
Copyrights 1999,2001-2007 by Mark Overmeer. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.