Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

readonly::xs(3pm) [debian man page]

XS(3pm) 						User Contributed Perl Documentation						   XS(3pm)

NAME
Readonly::XS - Companion module for Readonly.pm, to speed up read-only scalar variables. VERSION
This document describes version 1.04 of Readonly::XS, December 6, 2005. SYNOPSIS
Install this module, but do not use it. DESCRIPTION
The Readonly module (q.v.) is an effective way to create non-modifiable variables. However, it's relatively slow. The reason it's slow is that is implements the read-only-ness of variables via tied objects. This mechanism is inherently slow. Perl simply has to do a lot of work under the hood to make tied variables work. This module corrects the speed problem, at least with respect to scalar variables. When Readonly::XS is installed, Readonly uses it to access the internals of scalar variables. Instead of creating a scalar variable object and tying it, Readonly simply flips the SvREADONLY bit in the scalar's FLAGS structure. Readonly arrays and hashes are not sped up by this, since the SvREADONLY flag only works for scalars. Arrays and hashes always use the tie interface. Why implement this as a separate module? Because not everyone can use XS. Not everyone has a C compiler. Also, installations with a statically-linked perl may not want to recompile their perl binary just for this module. Rather than render Readonly.pm useless for these people, the XS portion was put into a separate module. Programs that you write do not need to know whether Readonly::XS is installed or not. They should just "use Readonly" and let Readonly worry about whether or not it can use XS. If the Readonly::XS is present, Readonly will be faster. If not, it won't. Either way, it will still work, and your code will not have to change. Your program can check whether Readonly.pm is using XS or not by examining the $Readonly::XSokay variable. It will be true if the XS module was found and is being used. Please do not change this variable. EXPORTS None. SEE ALSO
Readonly.pm AUTHOR
/ COPYRIGHT Eric Roode, roode@cpan.org Copyright (c) 2003-2005 by Eric J. Roode. All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. To avoid my spam filter, please include "Perl", "module", or this module's name in the message's subject line, and/or GPG-sign your message. perl v5.14.2 2011-11-15 XS(3pm)

Check Out this Related Man Page

PPIx::Utilities::Statement(3)				User Contributed Perl Documentation			     PPIx::Utilities::Statement(3)

NAME
PPIx::Utilities::Statement - Extensions to PPI::Statement. VERSION
This document describes PPIx::Utilities::Statement version 1.1.0. SYNOPSIS
use PPI::Document qw< >; use PPIx::Utilities::Statement qw< get_constant_name_elements_from_declaring_statement >; my $document = PPI::Document->new('Readonly::Scalar my $THINGY => 47.2;'); # Returns the PPI::Token::Symbol for "$THINGY". my ($constant) = get_constant_name_elements_from_declaring_statement( $document->schild(0) ); DESCRIPTION
This is a collection of functions for dealing with PPI::Statements. INTERFACE
Nothing is exported by default. "get_constant_name_elements_from_declaring_statement($statement)" Given a PPI::Statement, if the statement is a Readonly or Const::Fast declaration statement or a "use constant", returns the names of the things being defined. Given use constant 1.16 FOO => 'bar'; this will return the PPI::Token::Word containing 'FOO'. Given use constant 1.16 { FOO => 'bar', 'BAZ' => 'burfle' }; this will return a list of the PPI::Tokens containing 'FOO' and 'BAZ'. Similarly, given Readonly::Hash my %FOO => ( bar => 'baz' ); or const my %FOO => ( bar => 'baz' ); this will return the PPI::Token::Symbol containing '%FOO'. BUGS AND LIMITATIONS
Please report any bugs or feature requests to "bug-ppix-utilities@rt.cpan.org", or through the web interface at <http://rt.cpan.org>. AUTHOR
Thomas R. Wyant, III "<wyant at cpan dot org>" COPYRIGHT
Copyright (c) 2009-2010 Thomas R. Wyant, III. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of this license can be found in the LICENSE file included with this module. perl v5.16.3 2010-12-02 PPIx::Utilities::Statement(3)
Man Page