NAME
pragma - A pragma for controlling other user pragmas
DESCRIPTION
The pragma
pragma is a module which influences other user pragmata such as lint. With Perl 5.10 you can create user pragmata and the pragma
pragma can modify and peek at other pragmata.
A basic example
Assume you're using the myint
pragma mentioned in perlpragma. For ease, that pragma is duplicated here. You'll see it sets the myint
value to 1 when on and 0 when off.
package myint;
use strict;
use warnings;
sub import {
$^H{myint} = 1;
}
sub unimport {
$^H{myint} = 0;
}
1;
Other code might casually wish to dip into myint
:
no pragma 'myint'; # delete $^H{myint}
use pragma myint => 42; # $^H{myint} = 42
print pragma->peek( 'myint' ); # prints '42'
The above could have been written without the pragma
module as:
BEGIN { delete $^H{myint} }
BEGIN { $^H{myint} = 42 }
print $^H{myint};
CLASS METHODS
use pragma PRAGMA => VALUE
pragma->import( PRAGMA => VALUE )
pragma->poke( PRAGMA => VALUE )
-
Sets
PRAGMA
's value toVALUE
. no pragma PRAGMA
pragma->unimport( PRAGMA )
-
Unsets
PRAGMA
. pragma->peek( PRAGMA )
-
Returns the current value of
PRAGMA
.
SUBCLASSING
All methods may be subclassed.