1MIME::Type(3) User Contributed Perl Documentation MIME::Type(3)
2
3
4
6 MIME::Type - description of one MIME type
7
9 use MIME::Types;
10 my $mimetypes = MIME::Types->new;
11 my MIME::Type $plaintext = $mimetypes->type('text/plain');
12 print $plaintext->mediaType; # text
13 print $plaintext->subType; # plain
14
15 my @ext = $plaintext->extensions;
16 print "@ext" # txt asc c cc h hh cpp
17
18 print $plaintext->encoding # 8bit
19 if($plaintext->isBinary) # false
20 if($plaintext->isAscii) # true
21 if($plaintext->equals('text/plain') {...}
22 if($plaintext eq 'text/plain') # same
23
24 print MIME::Type->simplified('x-appl/x-zip') # 'appl/zip'
25
27 MIME types are used in MIME entities, for instance as part of e-mail
28 and HTTP traffic. Sometimes real knowledge about a mime-type is need.
29 Objects of "MIME::Type" store the information on one such type.
30
32 overload: string comparison
33 When a MIME::Type object is compared to either a string or another
34 MIME::Type, the equals() method is called. Comparison is smart,
35 which means that it extends common string comparison with some
36 features which are defined in the related RFCs.
37
38 overload: stringification
39 The stringification (use of the object in a place where a string is
40 required) will result in the type name, the same as type() returns.
41
42 example: use of stringification
43
44 my $mime = MIME::Type->new('text/html');
45 print "$mime\n"; # explicit stringification
46 print $mime; # implicit stringification
47
49 Initiation
50 MIME::Type->new(%options)
51 Create (instantiate) a new MIME::Type object which manages one mime
52 type.
53
54 -Option --Default
55 encoding <depends on type>
56 extensions []
57 simplified <derived from type>
58 system undef
59 type <required>
60
61 encoding => '7bit'|'8bit'|'base64'|'quoted-printable'
62 How must this data be encoded to be transported safely. The
63 default depends on the type: mimes with as main type "text/" will
64 default to "quoted-printable" and all other to "base64".
65
66 extensions => REF-ARRAY
67 An array of extensions which are using this mime.
68
69 simplified => STRING
70 The mime types main- and sub-label can both start with "x-", to
71 indicate that is a non-registered name. Of course, after
72 registration this flag can disappear which adds to the confusion.
73 The simplified string has the "x-" thingies removed and are
74 translated to lower-case.
75
76 system => REGEX
77 Regular expression which defines for which systems this rule is
78 valid. The REGEX is matched on $^O.
79
80 type => STRING
81 The type which is defined here. It consists of a type and a sub-
82 type, both case-insensitive. This module will return lower-case,
83 but accept upper-case.
84
85 Attributes
86 $obj->encoding()
87 Returns the type of encoding which is required to transport data of
88 this type safely.
89
90 $obj->extensions()
91 Returns a list of extensions which are known to be used for this
92 mime type.
93
94 $obj->simplified( [$string] )
95 MIME::Type->simplified( [$string] )
96 Returns the simplified mime type for this object or the specified
97 STRING. Mime type names can get officially registered. Until
98 then, they have to carry an "x-" preamble to indicate that. Of
99 course, after recognition, the "x-" can disappear. In many cases,
100 we prefer the simplified version of the type.
101
102 example: results of simplified()
103
104 my $mime = MIME::Type->new(type => 'x-appl/x-zip');
105 print $mime->simplified; # 'appl/zip'
106
107 print $mime->simplified('text/PLAIN'); # 'text/plain'
108 print MIME::Type->simplified('x-xyz/x-abc'); # 'xyz/abc'
109
110 $obj->system()
111 Returns the regular expression which can be used to determine
112 whether this type is active on the system where you are working on.
113
114 $obj->type()
115 Returns the long type of this object, for instance 'text/plain'
116
117 Knowledge
118 $obj->equals($string|$mime)
119 Compare this mime-type object with a STRING or other object. In
120 case of a STRING, simplification will take place.
121
122 $obj->isAscii()
123 Old name for isText().
124
125 $obj->isBinary()
126 Returns true when the type is not known to be text. See isText().
127
128 $obj->isExperimental()
129 [2.00] Return "true" when the type is defined for experimental use;
130 the subtype starts with "x."
131
132 $obj->isPersonal()
133 [2.00] Return "true" when the type is defined by a person for
134 private use; the subtype starts with "prs."
135
136 $obj->isRegistered()
137 Mime-types which are not registered by IANA nor defined in RFCs
138 shall start with an "x-". This counts for as well the media-type
139 as the sub-type. In case either one of the types starts with "x-"
140 this method will return false.
141
142 $obj->isSignature()
143 Returns true when the type is in the list of known signatures.
144
145 $obj->isText()
146 [2.05] All types which may have the charset attribute, are text.
147 However, there is currently no record of attributes in this
148 module... so we guess.
149
150 $obj->isVendor()
151 [2.00] Return "true" when the type is defined by a vendor; the
152 subtype starts with "vnd."
153
154 $obj->mediaType()
155 The media type of the simplified mime. For 'text/plain' it will
156 return 'text'.
157
158 For historical reasons, the 'mainType' method still can be used to
159 retrieve the same value. However, that method is deprecated.
160
161 $obj->subType()
162 The sub type of the simplified mime. For 'text/plain' it will
163 return 'plain'.
164
166 Error: Type parameter is obligatory.
167 When a MIME::Type object is created, the type itself must be
168 specified with the "type" option flag.
169
171 This module is part of MIME-Types distribution version 2.24, built on
172 December 28, 2022. Website: http://perl.overmeer.net/CPAN/
173
175 Copyrights 1999-2022 by [Mark Overmeer <markov@cpan.org>]. For other
176 contributors see ChangeLog.
177
178 This program is free software; you can redistribute it and/or modify it
179 under the same terms as Perl itself. See http://dev.perl.org/licenses/
180
181
182
183perl v5.38.0 2023-07-20 MIME::Type(3)