=head1 NAME

Parse::Perl::Environment - reified Perl lexical environment

=head1 DESCRIPTION

An object of this class encapsulates a lexical environment for Perl
source code.  Such an object can be used to influence Perl parsing,
through the C<parse_perl> function in L<Parse::Perl>.  An environment
object is most commonly generated by capturing the environment of running
Perl code, through the C<current_environment> operator in L<Parse::Perl>.

The things determined by the lexical environment, which are encapsulated
by this class, include:

=over

=item *

current package (controlled by C<package> directives)

=item *

activation of warnings (controlled by the L<warnings> module)

=item *

enforcement of language stricture (controlled by the L<strict> module)

=item *

availability of optional language features
(controlled by the L<feature> module)

=item *

various other standard pragmata,
such as L<integer>, L<locale>, L<sort>, L<utf8>

=item *

array base offset (C<$[>)

=item *

the lexical hints hash C<%^H>,
and hence the various (mainly non-core) pragmata
that are implemented through it

=item *

visibility of lexical variables
(introduced by C<my>, C<our>, or C<state>)

=back

Objects of this class are not meant to be examined manually.  The layout
varies between Perl versions, and between versions of the L<Parse::Perl>
module.

=head1 BUGS

This module provides no way to examine environments, or to create new
environments other than by capturing an existing one.  These shortcomings
should be addressed in a future version.

=head1 SEE ALSO

L<Parse::Perl>

=head1 AUTHOR

Andrew Main (Zefram) <zefram@fysh.org>

=head1 COPYRIGHT

Copyright (C) 2009, 2010 Andrew Main (Zefram) <zefram@fysh.org>

=head1 LICENSE

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