MIME::Field::ParamVal - subclass of Mail::Field, for structured MIME fields

NAME  SYNOPSIS  DESCRIPTION  PUBLIC INTERFACE  SEE ALSO 

NAME

MIME::Field::ParamVal − subclass of Mail::Field, for structured MIME fields

SYNOPSIS

# Create an object for a content−type field:
$field = new Mail::Field 'Content−type';
# Set some attributes:
$field−>param('_' => 'text/html');
$field−>param('charset' => 'us−ascii');
$field−>param('boundary' => '−−−ABC−−−');
# Same:
$field−>set('_' => 'text/html',
'charset' => 'us−ascii',
'boundary' => '−−−ABC−−−');
# Get an attribute, or undefined if not present:
print "no id!" if defined($field−>param('id'));
# Same, but use empty string for missing values:
print "no id!" if ($field−>paramstr('id') eq '');
# Output as string:
print $field−>stringify, "\n";

DESCRIPTION

This is an abstract superclass of most MIME fields. It handles fields with a general syntax like this:

Content−Type: Message/Partial;
number=2; total=3;
id="[email protected]"

Comments are supported between items, like this:

Content−Type: Message/Partial; (a comment)
number=2 (another comment) ; (yet another comment) total=3;
id="[email protected]"

PUBLIC INTERFACE

set [\%PARAMHASH | KEY=>VAL,...,KEY=>VAL]

Instance method. Set this field. The paramhash should contain parameter names in all lowercase, with the special "_" parameter name signifying the "default" (unnamed) parameter for the field:

# Set up to be...
#
# Content−type: Message/Partial; number=2; total=3; id="ocj=pbe0M2"
#
$conttype−>set('_' => 'Message/Partial',
'number' => 2,
'total' => 3,
'id' => "ocj=pbe0M2");

Note that a single argument is taken to be a reference to a paramhash, while multiple args are taken to be the elements of the paramhash themselves.

Supplying undef for a hashref, or an empty set of values, effectively clears the object.

The self object is returned.

parse_params STRING

Class/instance utility method. Extract parameter info from a structured field, and return it as a hash reference. For example, here is a field with parameters:

Content−Type: Message/Partial;
number=2; total=3;
id="[email protected]"

Here is how you’d extract them:

$params = $class−>parse_params('content−type');
if ($$params{'_'} eq 'message/partial') {
$number = $$params{'number'};
$total = $$params{'total'};
$id = $$params{'id'};
}

Like field names, parameter names are coerced to lowercase. The special ’_’ parameter means the default parameter for the field.

NOTE: This has been provided as a public method to support backwards compatibility, but you probably shouldn’t use it.

parse STRING

Class/instance method. Parse the string into the instance. Any previous information is wiped. The self object is returned.

May also be used as a constructor.

param PARAMNAME,[VALUE]

Instance method. Return the given parameter, or undef if it isn’t there. With argument, set the parameter to that VALUE. The PARAMNAME is case-insensitive. A "_" refers to the "default" parameter.

paramstr PARAMNAME,[VALUE]

Instance method. Like param(): return the given parameter, or empty if it isn’t there. With argument, set the parameter to that VALUE. The PARAMNAME is case-insensitive. A "_" refers to the "default" parameter.

stringify

Instance method. Convert the field to a string, and return it.

tag

Instance method, abstract. Return the tag for this field.

SEE ALSO

Mail::Field


Updated 2024-01-29 - jenkler.se | uex.se