Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | package ops; |
2 | ||
3 | our $VERSION = '1.01'; | |
4 | ||
5 | use Opcode qw(opmask_add opset invert_opset); | |
6 | ||
7 | sub import { | |
8 | shift; | |
9 | # Not that unimport is the preferred form since import's don't | |
10 | # accumulate well owing to the 'only ever add opmask' rule. | |
11 | # E.g., perl -Mops=:set1 -Mops=:setb is unlikely to do as expected. | |
12 | opmask_add(invert_opset opset(@_)) if @_; | |
13 | } | |
14 | ||
15 | sub unimport { | |
16 | shift; | |
17 | opmask_add(opset(@_)) if @_; | |
18 | } | |
19 | ||
20 | 1; | |
21 | ||
22 | __END__ | |
23 | ||
24 | =head1 NAME | |
25 | ||
26 | ops - Perl pragma to restrict unsafe operations when compiling | |
27 | ||
28 | =head1 SYNOPSIS | |
29 | ||
30 | perl -Mops=:default ... # only allow reasonably safe operations | |
31 | ||
32 | perl -M-ops=system ... # disable the 'system' opcode | |
33 | ||
34 | =head1 DESCRIPTION | |
35 | ||
36 | Since the ops pragma currently has an irreversible global effect, it is | |
37 | only of significant practical use with the C<-M> option on the command line. | |
38 | ||
39 | See the L<Opcode> module for information about opcodes, optags, opmasks | |
40 | and important information about safety. | |
41 | ||
42 | =head1 SEE ALSO | |
43 | ||
44 | Opcode(3), Safe(3), perlrun(3) | |
45 | ||
46 | =cut | |
47 |