package Opcode;
-require 5.002;
+use 5.006_001;
-use vars qw($VERSION $XS_VERSION @ISA @EXPORT_OK);
+use strict;
+
+our($VERSION, $XS_VERSION, @ISA, @EXPORT_OK);
-$VERSION = "1.04";
+$VERSION = "1.06";
$XS_VERSION = "1.03";
-use strict;
use Carp;
use Exporter ();
-use DynaLoader ();
-@ISA = qw(Exporter DynaLoader);
+use XSLoader ();
BEGIN {
+ @ISA = qw(Exporter);
@EXPORT_OK = qw(
opset ops_to_opset
opset_to_ops opset_to_hex invert_opset
sub opdump (;$);
use subs @EXPORT_OK;
-bootstrap Opcode $XS_VERSION;
+XSLoader::load 'Opcode', $XS_VERSION;
_init_optags();
=head1 Operator Names and Operator Lists
The canonical list of operator names is the contents of the array
-op_name defined and initialised in file F<opcode.h> of the Perl
+PL_op_name defined and initialised in file F<opcode.h> of the Perl
source distribution (and installed into the perl library).
Each operator has both a terse name (its opname) and a more verbose or
=item an operator set (opset)
-An I<opset> as a binary string of approximately 43 bytes which holds a
+An I<opset> as a binary string of approximately 44 bytes which holds a
set or zero or more operators.
The opset and opset_to_ops functions can be used to convert from
=item opcodes
In a scalar context opcodes returns the number of opcodes in this
-version of perl (around 340 for perl5.002).
+version of perl (around 350 for perl-5.7.0).
In a list context it returns a list of all the operator names.
(Not yet implemented, use @names = opset_to_ops(full_opset).)
ucfirst lcfirst uc lc quotemeta trans chop schop chomp schomp
- match split
+ match split qr
list lslice splice push pop shift unshift reverse
- cond_expr flip flop andassign orassign and or xor
+ cond_expr flip flop andassign orassign dorassign and or dor xor
- warn die lineseq nextstate unstack scope enter leave
+ warn die lineseq nextstate scope enter leave setstate
rv2cv anoncode prototype
- entersub leavesub return method -- XXX loops via recursion?
+ entersub leavesub leavesublv return method method_named -- XXX loops via recursion?
leaveeval -- needed for Safe to operate, is safe without entereval
grepstart grepwhile
mapstart mapwhile
enteriter iter
- enterloop leaveloop
+ enterloop leaveloop unstack
last next redo
goto
entertry leavetry -- can be used to 'hide' fatal errors
+ custom -- where should this go
+
=item :base_math
These ops are not included in :base_core because of the risk of them being