=over

=item my VARLIST
X<my>

=item my TYPE VARLIST

=item my VARLIST : ATTRS

=item my TYPE VARLIST : ATTRS

A C<my> declares the listed variables to be local (lexically) to the
enclosing block, file, or C<eval>.  If more than one variable is listed,
the list must be placed in parentheses.

The exact semantics and interface of TYPE and ATTRS are still
evolving.  TYPE may be a bareword, a constant declared
with C<use constant>, or C<__PACKAGE__>.  It is
currently bound to the use of the C<fields> pragma,
and attributes are handled using the C<attributes> pragma, or starting
from Perl 5.8.0 also via the C<Attribute::Handlers> module.  See
L<perlsub/"Private Variables via my()"> for details, and L<fields>,
L<attributes>, and L<Attribute::Handlers>.

Note that with a parenthesised list, C<undef> can be used as a dummy
placeholder, for example to skip assignment of initial values:

    my ( undef, $min, $hour ) = localtime;

=back