+use strict;
+use warnings;
+
package PLXML;
sub DESTROY { }
for my $key (sort keys %$self) {
print "\t$key = <$$self{$key}>\n";
}
- foreach $kid (@{$$self{Kids}}) {
+ foreach my $kid (@{$$self{Kids}}) {
$kid->walk(@_);
}
}
package PLXML::Characters;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
sub walk {}
package PLXML::madprops;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::mad_op;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::mad_pv;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::baseop;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::baseop_unop;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::binop;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::cop;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::filestatop;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
package PLXML::listop;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::logop;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::loop;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::loopexop;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::padop;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::padop_svop;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::pmop;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::pvop_svop;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
package PLXML::unop;
-@ISA = ('PLXML');
+our @ISA = ('PLXML');
# New ops always go at the end, just before 'custom'
package PLXML::op_null;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'null' }
sub desc { 'null operation' }
package PLXML::op_stub;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'stub' }
sub desc { 'stub' }
package PLXML::op_scalar;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'scalar' }
sub desc { 'scalar' }
package PLXML::op_pushmark;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'pushmark' }
sub desc { 'pushmark' }
package PLXML::op_wantarray;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'wantarray' }
sub desc { 'wantarray' }
package PLXML::op_const;
-@ISA = ('PLXML::padop_svop');
+our @ISA = ('PLXML::padop_svop');
sub key { 'const' }
sub desc { 'constant item' }
package PLXML::op_gvsv;
-@ISA = ('PLXML::padop_svop');
+our @ISA = ('PLXML::padop_svop');
sub key { 'gvsv' }
sub desc { 'scalar variable' }
package PLXML::op_gv;
-@ISA = ('PLXML::padop_svop');
+our @ISA = ('PLXML::padop_svop');
sub key { 'gv' }
sub desc { 'glob value' }
package PLXML::op_gelem;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'gelem' }
sub desc { 'glob elem' }
package PLXML::op_padsv;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'padsv' }
sub desc { 'private variable' }
package PLXML::op_padav;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'padav' }
sub desc { 'private array' }
package PLXML::op_padhv;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'padhv' }
sub desc { 'private hash' }
package PLXML::op_padany;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'padany' }
sub desc { 'private value' }
package PLXML::op_pushre;
-@ISA = ('PLXML::pmop');
+our @ISA = ('PLXML::pmop');
sub key { 'pushre' }
sub desc { 'push regexp' }
package PLXML::op_rv2gv;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'rv2gv' }
sub desc { 'ref-to-glob cast' }
package PLXML::op_rv2sv;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'rv2sv' }
sub desc { 'scalar dereference' }
package PLXML::op_av2arylen;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'av2arylen' }
sub desc { 'array length' }
package PLXML::op_rv2cv;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'rv2cv' }
sub desc { 'subroutine dereference' }
package PLXML::op_anoncode;
-@ISA = ('PLXML::padop_svop');
+our @ISA = ('PLXML::padop_svop');
sub key { 'anoncode' }
sub desc { 'anonymous subroutine' }
package PLXML::op_prototype;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'prototype' }
sub desc { 'subroutine prototype' }
package PLXML::op_refgen;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'refgen' }
sub desc { 'reference constructor' }
package PLXML::op_srefgen;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'srefgen' }
sub desc { 'single ref constructor' }
package PLXML::op_ref;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'ref' }
sub desc { 'reference-type operator' }
package PLXML::op_bless;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'bless' }
sub desc { 'bless' }
package PLXML::op_backtick;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'backtick' }
sub desc { 'quoted execution (``, qx)' }
# glob defaults its first arg to $_
package PLXML::op_glob;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'glob' }
sub desc { 'glob' }
package PLXML::op_readline;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'readline' }
sub desc { '<HANDLE>' }
package PLXML::op_rcatline;
-@ISA = ('PLXML::padop_svop');
+our @ISA = ('PLXML::padop_svop');
sub key { 'rcatline' }
sub desc { 'append I/O operator' }
package PLXML::op_regcmaybe;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'regcmaybe' }
sub desc { 'regexp internal guard' }
package PLXML::op_regcreset;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'regcreset' }
sub desc { 'regexp internal reset' }
package PLXML::op_regcomp;
-@ISA = ('PLXML::logop');
+our @ISA = ('PLXML::logop');
sub key { 'regcomp' }
sub desc { 'regexp compilation' }
package PLXML::op_match;
-@ISA = ('PLXML::pmop');
+our @ISA = ('PLXML::pmop');
sub key { 'match' }
sub desc { 'pattern match (m//)' }
package PLXML::op_qr;
-@ISA = ('PLXML::pmop');
+our @ISA = ('PLXML::pmop');
sub key { 'qr' }
sub desc { 'pattern quote (qr//)' }
package PLXML::op_subst;
-@ISA = ('PLXML::pmop');
+our @ISA = ('PLXML::pmop');
sub key { 'subst' }
sub desc { 'substitution (s///)' }
package PLXML::op_substcont;
-@ISA = ('PLXML::logop');
+our @ISA = ('PLXML::logop');
sub key { 'substcont' }
sub desc { 'substitution iterator' }
package PLXML::op_trans;
-@ISA = ('PLXML::pvop_svop');
+our @ISA = ('PLXML::pvop_svop');
sub key { 'trans' }
sub desc { 'transliteration (tr///)' }
package PLXML::op_sassign;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'sassign' }
sub desc { 'scalar assignment' }
package PLXML::op_aassign;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'aassign' }
sub desc { 'list assignment' }
package PLXML::op_chop;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'chop' }
sub desc { 'chop' }
package PLXML::op_schop;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'schop' }
sub desc { 'scalar chop' }
package PLXML::op_chomp;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'chomp' }
sub desc { 'chomp' }
package PLXML::op_schomp;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'schomp' }
sub desc { 'scalar chomp' }
package PLXML::op_defined;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'defined' }
sub desc { 'defined operator' }
package PLXML::op_undef;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'undef' }
sub desc { 'undef operator' }
package PLXML::op_study;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'study' }
sub desc { 'study' }
package PLXML::op_pos;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'pos' }
sub desc { 'match position' }
package PLXML::op_preinc;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'preinc' }
sub desc { 'preincrement (++)' }
package PLXML::op_i_preinc;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'i_preinc' }
sub desc { 'integer preincrement (++)' }
package PLXML::op_predec;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'predec' }
sub desc { 'predecrement (--)' }
package PLXML::op_i_predec;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'i_predec' }
sub desc { 'integer predecrement (--)' }
package PLXML::op_postinc;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'postinc' }
sub desc { 'postincrement (++)' }
package PLXML::op_i_postinc;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'i_postinc' }
sub desc { 'integer postincrement (++)' }
package PLXML::op_postdec;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'postdec' }
sub desc { 'postdecrement (--)' }
package PLXML::op_i_postdec;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'i_postdec' }
sub desc { 'integer postdecrement (--)' }
package PLXML::op_pow;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'pow' }
sub desc { 'exponentiation (**)' }
package PLXML::op_multiply;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'multiply' }
sub desc { 'multiplication (*)' }
package PLXML::op_i_multiply;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'i_multiply' }
sub desc { 'integer multiplication (*)' }
package PLXML::op_divide;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'divide' }
sub desc { 'division (/)' }
package PLXML::op_i_divide;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'i_divide' }
sub desc { 'integer division (/)' }
package PLXML::op_modulo;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'modulo' }
sub desc { 'modulus (%)' }
package PLXML::op_i_modulo;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'i_modulo' }
sub desc { 'integer modulus (%)' }
package PLXML::op_repeat;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'repeat' }
sub desc { 'repeat (x)' }
package PLXML::op_add;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'add' }
sub desc { 'addition (+)' }
package PLXML::op_i_add;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'i_add' }
sub desc { 'integer addition (+)' }
package PLXML::op_subtract;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'subtract' }
sub desc { 'subtraction (-)' }
package PLXML::op_i_subtract;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'i_subtract' }
sub desc { 'integer subtraction (-)' }
package PLXML::op_concat;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'concat' }
sub desc { 'concatenation (.) or string' }
package PLXML::op_stringify;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'stringify' }
sub desc { 'string' }
package PLXML::op_left_shift;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'left_shift' }
sub desc { 'left bitshift (<<)' }
package PLXML::op_right_shift;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'right_shift' }
sub desc { 'right bitshift (>>)' }
package PLXML::op_lt;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'lt' }
sub desc { 'numeric lt (<)' }
package PLXML::op_i_lt;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'i_lt' }
sub desc { 'integer lt (<)' }
package PLXML::op_gt;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'gt' }
sub desc { 'numeric gt (>)' }
package PLXML::op_i_gt;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'i_gt' }
sub desc { 'integer gt (>)' }
package PLXML::op_le;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'le' }
sub desc { 'numeric le (<=)' }
package PLXML::op_i_le;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'i_le' }
sub desc { 'integer le (<=)' }
package PLXML::op_ge;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'ge' }
sub desc { 'numeric ge (>=)' }
package PLXML::op_i_ge;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'i_ge' }
sub desc { 'integer ge (>=)' }
package PLXML::op_eq;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'eq' }
sub desc { 'numeric eq (==)' }
package PLXML::op_i_eq;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'i_eq' }
sub desc { 'integer eq (==)' }
package PLXML::op_ne;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'ne' }
sub desc { 'numeric ne (!=)' }
package PLXML::op_i_ne;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'i_ne' }
sub desc { 'integer ne (!=)' }
package PLXML::op_ncmp;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'ncmp' }
sub desc { 'numeric comparison (<=>)' }
package PLXML::op_i_ncmp;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'i_ncmp' }
sub desc { 'integer comparison (<=>)' }
package PLXML::op_slt;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'slt' }
sub desc { 'string lt' }
package PLXML::op_sgt;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'sgt' }
sub desc { 'string gt' }
package PLXML::op_sle;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'sle' }
sub desc { 'string le' }
package PLXML::op_sge;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'sge' }
sub desc { 'string ge' }
package PLXML::op_seq;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'seq' }
sub desc { 'string eq' }
package PLXML::op_sne;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'sne' }
sub desc { 'string ne' }
package PLXML::op_scmp;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'scmp' }
sub desc { 'string comparison (cmp)' }
package PLXML::op_bit_and;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'bit_and' }
sub desc { 'bitwise and (&)' }
package PLXML::op_bit_xor;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'bit_xor' }
sub desc { 'bitwise xor (^)' }
package PLXML::op_bit_or;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'bit_or' }
sub desc { 'bitwise or (|)' }
package PLXML::op_negate;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'negate' }
sub desc { 'negation (-)' }
package PLXML::op_i_negate;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'i_negate' }
sub desc { 'integer negation (-)' }
package PLXML::op_not;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'not' }
sub desc { 'not' }
package PLXML::op_complement;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'complement' }
sub desc { '1\'s complement (~)' }
package PLXML::op_atan2;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'atan2' }
sub desc { 'atan2' }
package PLXML::op_sin;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'sin' }
sub desc { 'sin' }
package PLXML::op_cos;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'cos' }
sub desc { 'cos' }
package PLXML::op_rand;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'rand' }
sub desc { 'rand' }
package PLXML::op_srand;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'srand' }
sub desc { 'srand' }
package PLXML::op_exp;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'exp' }
sub desc { 'exp' }
package PLXML::op_log;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'log' }
sub desc { 'log' }
package PLXML::op_sqrt;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'sqrt' }
sub desc { 'sqrt' }
package PLXML::op_int;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'int' }
sub desc { 'int' }
package PLXML::op_hex;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'hex' }
sub desc { 'hex' }
package PLXML::op_oct;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'oct' }
sub desc { 'oct' }
package PLXML::op_abs;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'abs' }
sub desc { 'abs' }
package PLXML::op_length;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'length' }
sub desc { 'length' }
package PLXML::op_substr;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'substr' }
sub desc { 'substr' }
package PLXML::op_vec;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'vec' }
sub desc { 'vec' }
package PLXML::op_index;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'index' }
sub desc { 'index' }
package PLXML::op_rindex;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'rindex' }
sub desc { 'rindex' }
package PLXML::op_sprintf;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'sprintf' }
sub desc { 'sprintf' }
package PLXML::op_formline;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'formline' }
sub desc { 'formline' }
package PLXML::op_ord;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'ord' }
sub desc { 'ord' }
package PLXML::op_chr;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'chr' }
sub desc { 'chr' }
package PLXML::op_crypt;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'crypt' }
sub desc { 'crypt' }
package PLXML::op_ucfirst;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'ucfirst' }
sub desc { 'ucfirst' }
package PLXML::op_lcfirst;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'lcfirst' }
sub desc { 'lcfirst' }
package PLXML::op_uc;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'uc' }
sub desc { 'uc' }
package PLXML::op_lc;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'lc' }
sub desc { 'lc' }
package PLXML::op_quotemeta;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'quotemeta' }
sub desc { 'quotemeta' }
package PLXML::op_rv2av;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'rv2av' }
sub desc { 'array dereference' }
package PLXML::op_aelemfast;
-@ISA = ('PLXML::padop_svop');
+our @ISA = ('PLXML::padop_svop');
sub key { 'aelemfast' }
sub desc { 'constant array element' }
package PLXML::op_aelem;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'aelem' }
sub desc { 'array element' }
package PLXML::op_aslice;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'aslice' }
sub desc { 'array slice' }
package PLXML::op_each;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'each' }
sub desc { 'each' }
package PLXML::op_values;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'values' }
sub desc { 'values' }
package PLXML::op_keys;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'keys' }
sub desc { 'keys' }
package PLXML::op_delete;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'delete' }
sub desc { 'delete' }
package PLXML::op_exists;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'exists' }
sub desc { 'exists' }
package PLXML::op_rv2hv;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'rv2hv' }
sub desc { 'hash dereference' }
package PLXML::op_helem;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'helem' }
sub desc { 'hash element' }
package PLXML::op_hslice;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'hslice' }
sub desc { 'hash slice' }
package PLXML::op_unpack;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'unpack' }
sub desc { 'unpack' }
package PLXML::op_pack;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'pack' }
sub desc { 'pack' }
package PLXML::op_split;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'split' }
sub desc { 'split' }
package PLXML::op_join;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'join' }
sub desc { 'join or string' }
package PLXML::op_list;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'list' }
sub desc { 'list' }
package PLXML::op_lslice;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'lslice' }
sub desc { 'list slice' }
package PLXML::op_anonlist;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'anonlist' }
sub desc { 'anonymous list ([])' }
package PLXML::op_anonhash;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'anonhash' }
sub desc { 'anonymous hash ({})' }
package PLXML::op_splice;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'splice' }
sub desc { 'splice' }
package PLXML::op_push;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'push' }
sub desc { 'push' }
package PLXML::op_pop;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'pop' }
sub desc { 'pop' }
package PLXML::op_shift;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'shift' }
sub desc { 'shift' }
package PLXML::op_unshift;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'unshift' }
sub desc { 'unshift' }
package PLXML::op_sort;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'sort' }
sub desc { 'sort' }
package PLXML::op_reverse;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'reverse' }
sub desc { 'reverse' }
package PLXML::op_grepstart;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'grepstart' }
sub desc { 'grep' }
package PLXML::op_grepwhile;
-@ISA = ('PLXML::logop');
+our @ISA = ('PLXML::logop');
sub key { 'grepwhile' }
sub desc { 'grep iterator' }
package PLXML::op_mapstart;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'mapstart' }
sub desc { 'map' }
package PLXML::op_mapwhile;
-@ISA = ('PLXML::logop');
+our @ISA = ('PLXML::logop');
sub key { 'mapwhile' }
sub desc { 'map iterator' }
package PLXML::op_range;
-@ISA = ('PLXML::logop');
+our @ISA = ('PLXML::logop');
sub key { 'range' }
sub desc { 'flipflop' }
package PLXML::op_flip;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'flip' }
sub desc { 'range (or flip)' }
package PLXML::op_flop;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'flop' }
sub desc { 'range (or flop)' }
package PLXML::op_and;
-@ISA = ('PLXML::logop');
+our @ISA = ('PLXML::logop');
sub key { 'and' }
sub desc { 'logical and (&&)' }
package PLXML::op_or;
-@ISA = ('PLXML::logop');
+our @ISA = ('PLXML::logop');
sub key { 'or' }
sub desc { 'logical or (||)' }
package PLXML::op_xor;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'xor' }
sub desc { 'logical xor' }
package PLXML::op_cond_expr;
-@ISA = ('PLXML::logop');
+our @ISA = ('PLXML::logop');
sub key { 'cond_expr' }
sub desc { 'conditional expression' }
package PLXML::op_andassign;
-@ISA = ('PLXML::logop');
+our @ISA = ('PLXML::logop');
sub key { 'andassign' }
sub desc { 'logical and assignment (&&=)' }
package PLXML::op_orassign;
-@ISA = ('PLXML::logop');
+our @ISA = ('PLXML::logop');
sub key { 'orassign' }
sub desc { 'logical or assignment (||=)' }
package PLXML::op_method;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'method' }
sub desc { 'method lookup' }
package PLXML::op_entersub;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'entersub' }
sub desc { 'subroutine entry' }
package PLXML::op_leavesub;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'leavesub' }
sub desc { 'subroutine exit' }
package PLXML::op_leavesublv;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'leavesublv' }
sub desc { 'lvalue subroutine return' }
package PLXML::op_caller;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'caller' }
sub desc { 'caller' }
package PLXML::op_warn;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'warn' }
sub desc { 'warn' }
package PLXML::op_die;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'die' }
sub desc { 'die' }
package PLXML::op_reset;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'reset' }
sub desc { 'symbol reset' }
package PLXML::op_lineseq;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'lineseq' }
sub desc { 'line sequence' }
package PLXML::op_nextstate;
-@ISA = ('PLXML::cop');
+our @ISA = ('PLXML::cop');
sub key { 'nextstate' }
sub desc { 'next statement' }
package PLXML::op_dbstate;
-@ISA = ('PLXML::cop');
+our @ISA = ('PLXML::cop');
sub key { 'dbstate' }
sub desc { 'debug next statement' }
package PLXML::op_unstack;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'unstack' }
sub desc { 'iteration finalizer' }
package PLXML::op_enter;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'enter' }
sub desc { 'block entry' }
package PLXML::op_leave;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'leave' }
sub desc { 'block exit' }
package PLXML::op_scope;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'scope' }
sub desc { 'block' }
package PLXML::op_enteriter;
-@ISA = ('PLXML::loop');
+our @ISA = ('PLXML::loop');
sub key { 'enteriter' }
sub desc { 'foreach loop entry' }
package PLXML::op_iter;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'iter' }
sub desc { 'foreach loop iterator' }
package PLXML::op_enterloop;
-@ISA = ('PLXML::loop');
+our @ISA = ('PLXML::loop');
sub key { 'enterloop' }
sub desc { 'loop entry' }
package PLXML::op_leaveloop;
-@ISA = ('PLXML::binop');
+our @ISA = ('PLXML::binop');
sub key { 'leaveloop' }
sub desc { 'loop exit' }
package PLXML::op_return;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'return' }
sub desc { 'return' }
package PLXML::op_last;
-@ISA = ('PLXML::loopexop');
+our @ISA = ('PLXML::loopexop');
sub key { 'last' }
sub desc { 'last' }
package PLXML::op_next;
-@ISA = ('PLXML::loopexop');
+our @ISA = ('PLXML::loopexop');
sub key { 'next' }
sub desc { 'next' }
package PLXML::op_redo;
-@ISA = ('PLXML::loopexop');
+our @ISA = ('PLXML::loopexop');
sub key { 'redo' }
sub desc { 'redo' }
package PLXML::op_dump;
-@ISA = ('PLXML::loopexop');
+our @ISA = ('PLXML::loopexop');
sub key { 'dump' }
sub desc { 'dump' }
package PLXML::op_goto;
-@ISA = ('PLXML::loopexop');
+our @ISA = ('PLXML::loopexop');
sub key { 'goto' }
sub desc { 'goto' }
package PLXML::op_exit;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'exit' }
sub desc { 'exit' }
package PLXML::op_open;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'open' }
sub desc { 'open' }
package PLXML::op_close;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'close' }
sub desc { 'close' }
package PLXML::op_pipe_op;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'pipe_op' }
sub desc { 'pipe' }
package PLXML::op_fileno;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'fileno' }
sub desc { 'fileno' }
package PLXML::op_umask;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'umask' }
sub desc { 'umask' }
package PLXML::op_binmode;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'binmode' }
sub desc { 'binmode' }
package PLXML::op_tie;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'tie' }
sub desc { 'tie' }
package PLXML::op_untie;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'untie' }
sub desc { 'untie' }
package PLXML::op_tied;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'tied' }
sub desc { 'tied' }
package PLXML::op_dbmopen;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'dbmopen' }
sub desc { 'dbmopen' }
package PLXML::op_dbmclose;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'dbmclose' }
sub desc { 'dbmclose' }
package PLXML::op_sselect;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'sselect' }
sub desc { 'select system call' }
package PLXML::op_select;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'select' }
sub desc { 'select' }
package PLXML::op_getc;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'getc' }
sub desc { 'getc' }
package PLXML::op_read;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'read' }
sub desc { 'read' }
package PLXML::op_enterwrite;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'enterwrite' }
sub desc { 'write' }
package PLXML::op_leavewrite;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'leavewrite' }
sub desc { 'write exit' }
package PLXML::op_prtf;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'prtf' }
sub desc { 'printf' }
package PLXML::op_print;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'print' }
sub desc { 'print' }
package PLXML::op_sysopen;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'sysopen' }
sub desc { 'sysopen' }
package PLXML::op_sysseek;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'sysseek' }
sub desc { 'sysseek' }
package PLXML::op_sysread;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'sysread' }
sub desc { 'sysread' }
package PLXML::op_syswrite;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'syswrite' }
sub desc { 'syswrite' }
package PLXML::op_send;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'send' }
sub desc { 'send' }
package PLXML::op_recv;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'recv' }
sub desc { 'recv' }
package PLXML::op_eof;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'eof' }
sub desc { 'eof' }
package PLXML::op_tell;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'tell' }
sub desc { 'tell' }
package PLXML::op_seek;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'seek' }
sub desc { 'seek' }
# truncate really behaves as if it had both "S S" and "F S"
package PLXML::op_truncate;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'truncate' }
sub desc { 'truncate' }
package PLXML::op_fcntl;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'fcntl' }
sub desc { 'fcntl' }
package PLXML::op_ioctl;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'ioctl' }
sub desc { 'ioctl' }
package PLXML::op_flock;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'flock' }
sub desc { 'flock' }
package PLXML::op_socket;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'socket' }
sub desc { 'socket' }
package PLXML::op_sockpair;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'sockpair' }
sub desc { 'socketpair' }
package PLXML::op_bind;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'bind' }
sub desc { 'bind' }
package PLXML::op_connect;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'connect' }
sub desc { 'connect' }
package PLXML::op_listen;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'listen' }
sub desc { 'listen' }
package PLXML::op_accept;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'accept' }
sub desc { 'accept' }
package PLXML::op_shutdown;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'shutdown' }
sub desc { 'shutdown' }
package PLXML::op_gsockopt;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'gsockopt' }
sub desc { 'getsockopt' }
package PLXML::op_ssockopt;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'ssockopt' }
sub desc { 'setsockopt' }
package PLXML::op_getsockname;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'getsockname' }
sub desc { 'getsockname' }
package PLXML::op_getpeername;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'getpeername' }
sub desc { 'getpeername' }
package PLXML::op_lstat;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'lstat' }
sub desc { 'lstat' }
package PLXML::op_stat;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'stat' }
sub desc { 'stat' }
package PLXML::op_ftrread;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftrread' }
sub desc { '-R' }
package PLXML::op_ftrwrite;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftrwrite' }
sub desc { '-W' }
package PLXML::op_ftrexec;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftrexec' }
sub desc { '-X' }
package PLXML::op_fteread;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'fteread' }
sub desc { '-r' }
package PLXML::op_ftewrite;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftewrite' }
sub desc { '-w' }
package PLXML::op_fteexec;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'fteexec' }
sub desc { '-x' }
package PLXML::op_ftis;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftis' }
sub desc { '-e' }
package PLXML::op_fteowned;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'fteowned' }
sub desc { '-O' }
package PLXML::op_ftrowned;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftrowned' }
sub desc { '-o' }
package PLXML::op_ftzero;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftzero' }
sub desc { '-z' }
package PLXML::op_ftsize;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftsize' }
sub desc { '-s' }
package PLXML::op_ftmtime;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftmtime' }
sub desc { '-M' }
package PLXML::op_ftatime;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftatime' }
sub desc { '-A' }
package PLXML::op_ftctime;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftctime' }
sub desc { '-C' }
package PLXML::op_ftsock;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftsock' }
sub desc { '-S' }
package PLXML::op_ftchr;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftchr' }
sub desc { '-c' }
package PLXML::op_ftblk;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftblk' }
sub desc { '-b' }
package PLXML::op_ftfile;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftfile' }
sub desc { '-f' }
package PLXML::op_ftdir;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftdir' }
sub desc { '-d' }
package PLXML::op_ftpipe;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftpipe' }
sub desc { '-p' }
package PLXML::op_ftlink;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftlink' }
sub desc { '-l' }
package PLXML::op_ftsuid;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftsuid' }
sub desc { '-u' }
package PLXML::op_ftsgid;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftsgid' }
sub desc { '-g' }
package PLXML::op_ftsvtx;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftsvtx' }
sub desc { '-k' }
package PLXML::op_fttty;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'fttty' }
sub desc { '-t' }
package PLXML::op_fttext;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'fttext' }
sub desc { '-T' }
package PLXML::op_ftbinary;
-@ISA = ('PLXML::filestatop');
+our @ISA = ('PLXML::filestatop');
sub key { 'ftbinary' }
sub desc { '-B' }
package PLXML::op_chdir;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'chdir' }
sub desc { 'chdir' }
package PLXML::op_chown;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'chown' }
sub desc { 'chown' }
package PLXML::op_chroot;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'chroot' }
sub desc { 'chroot' }
package PLXML::op_unlink;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'unlink' }
sub desc { 'unlink' }
package PLXML::op_chmod;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'chmod' }
sub desc { 'chmod' }
package PLXML::op_utime;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'utime' }
sub desc { 'utime' }
package PLXML::op_rename;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'rename' }
sub desc { 'rename' }
package PLXML::op_link;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'link' }
sub desc { 'link' }
package PLXML::op_symlink;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'symlink' }
sub desc { 'symlink' }
package PLXML::op_readlink;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'readlink' }
sub desc { 'readlink' }
package PLXML::op_mkdir;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'mkdir' }
sub desc { 'mkdir' }
package PLXML::op_rmdir;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'rmdir' }
sub desc { 'rmdir' }
package PLXML::op_open_dir;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'open_dir' }
sub desc { 'opendir' }
package PLXML::op_readdir;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'readdir' }
sub desc { 'readdir' }
package PLXML::op_telldir;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'telldir' }
sub desc { 'telldir' }
package PLXML::op_seekdir;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'seekdir' }
sub desc { 'seekdir' }
package PLXML::op_rewinddir;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'rewinddir' }
sub desc { 'rewinddir' }
package PLXML::op_closedir;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'closedir' }
sub desc { 'closedir' }
package PLXML::op_fork;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'fork' }
sub desc { 'fork' }
package PLXML::op_wait;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'wait' }
sub desc { 'wait' }
package PLXML::op_waitpid;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'waitpid' }
sub desc { 'waitpid' }
package PLXML::op_system;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'system' }
sub desc { 'system' }
package PLXML::op_exec;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'exec' }
sub desc { 'exec' }
package PLXML::op_kill;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'kill' }
sub desc { 'kill' }
package PLXML::op_getppid;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'getppid' }
sub desc { 'getppid' }
package PLXML::op_getpgrp;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'getpgrp' }
sub desc { 'getpgrp' }
package PLXML::op_setpgrp;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'setpgrp' }
sub desc { 'setpgrp' }
package PLXML::op_getpriority;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'getpriority' }
sub desc { 'getpriority' }
package PLXML::op_setpriority;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'setpriority' }
sub desc { 'setpriority' }
package PLXML::op_time;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'time' }
sub desc { 'time' }
package PLXML::op_tms;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'tms' }
sub desc { 'times' }
package PLXML::op_localtime;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'localtime' }
sub desc { 'localtime' }
package PLXML::op_gmtime;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'gmtime' }
sub desc { 'gmtime' }
package PLXML::op_alarm;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'alarm' }
sub desc { 'alarm' }
package PLXML::op_sleep;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'sleep' }
sub desc { 'sleep' }
package PLXML::op_shmget;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'shmget' }
sub desc { 'shmget' }
package PLXML::op_shmctl;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'shmctl' }
sub desc { 'shmctl' }
package PLXML::op_shmread;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'shmread' }
sub desc { 'shmread' }
package PLXML::op_shmwrite;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'shmwrite' }
sub desc { 'shmwrite' }
package PLXML::op_msgget;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'msgget' }
sub desc { 'msgget' }
package PLXML::op_msgctl;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'msgctl' }
sub desc { 'msgctl' }
package PLXML::op_msgsnd;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'msgsnd' }
sub desc { 'msgsnd' }
package PLXML::op_msgrcv;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'msgrcv' }
sub desc { 'msgrcv' }
package PLXML::op_semget;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'semget' }
sub desc { 'semget' }
package PLXML::op_semctl;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'semctl' }
sub desc { 'semctl' }
package PLXML::op_semop;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'semop' }
sub desc { 'semop' }
package PLXML::op_require;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'require' }
sub desc { 'require' }
package PLXML::op_dofile;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'dofile' }
sub desc { 'do "file"' }
package PLXML::op_entereval;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'entereval' }
sub desc { 'eval "string"' }
package PLXML::op_leaveeval;
-@ISA = ('PLXML::unop');
+our @ISA = ('PLXML::unop');
sub key { 'leaveeval' }
sub desc { 'eval "string" exit' }
#evalonce eval constant string ck_null d1 S
package PLXML::op_entertry;
-@ISA = ('PLXML::logop');
+our @ISA = ('PLXML::logop');
sub key { 'entertry' }
sub desc { 'eval {block}' }
package PLXML::op_leavetry;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'leavetry' }
sub desc { 'eval {block} exit' }
package PLXML::op_ghbyname;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'ghbyname' }
sub desc { 'gethostbyname' }
package PLXML::op_ghbyaddr;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'ghbyaddr' }
sub desc { 'gethostbyaddr' }
package PLXML::op_ghostent;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'ghostent' }
sub desc { 'gethostent' }
package PLXML::op_gnbyname;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'gnbyname' }
sub desc { 'getnetbyname' }
package PLXML::op_gnbyaddr;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'gnbyaddr' }
sub desc { 'getnetbyaddr' }
package PLXML::op_gnetent;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'gnetent' }
sub desc { 'getnetent' }
package PLXML::op_gpbyname;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'gpbyname' }
sub desc { 'getprotobyname' }
package PLXML::op_gpbynumber;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'gpbynumber' }
sub desc { 'getprotobynumber' }
package PLXML::op_gprotoent;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'gprotoent' }
sub desc { 'getprotoent' }
package PLXML::op_gsbyname;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'gsbyname' }
sub desc { 'getservbyname' }
package PLXML::op_gsbyport;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'gsbyport' }
sub desc { 'getservbyport' }
package PLXML::op_gservent;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'gservent' }
sub desc { 'getservent' }
package PLXML::op_shostent;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'shostent' }
sub desc { 'sethostent' }
package PLXML::op_snetent;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'snetent' }
sub desc { 'setnetent' }
package PLXML::op_sprotoent;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'sprotoent' }
sub desc { 'setprotoent' }
package PLXML::op_sservent;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'sservent' }
sub desc { 'setservent' }
package PLXML::op_ehostent;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'ehostent' }
sub desc { 'endhostent' }
package PLXML::op_enetent;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'enetent' }
sub desc { 'endnetent' }
package PLXML::op_eprotoent;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'eprotoent' }
sub desc { 'endprotoent' }
package PLXML::op_eservent;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'eservent' }
sub desc { 'endservent' }
package PLXML::op_gpwnam;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'gpwnam' }
sub desc { 'getpwnam' }
package PLXML::op_gpwuid;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'gpwuid' }
sub desc { 'getpwuid' }
package PLXML::op_gpwent;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'gpwent' }
sub desc { 'getpwent' }
package PLXML::op_spwent;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'spwent' }
sub desc { 'setpwent' }
package PLXML::op_epwent;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'epwent' }
sub desc { 'endpwent' }
package PLXML::op_ggrnam;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'ggrnam' }
sub desc { 'getgrnam' }
package PLXML::op_ggrgid;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'ggrgid' }
sub desc { 'getgrgid' }
package PLXML::op_ggrent;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'ggrent' }
sub desc { 'getgrent' }
package PLXML::op_sgrent;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'sgrent' }
sub desc { 'setgrent' }
package PLXML::op_egrent;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'egrent' }
sub desc { 'endgrent' }
package PLXML::op_getlogin;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'getlogin' }
sub desc { 'getlogin' }
package PLXML::op_syscall;
-@ISA = ('PLXML::listop');
+our @ISA = ('PLXML::listop');
sub key { 'syscall' }
sub desc { 'syscall' }
# For multi-threading
package PLXML::op_lock;
-@ISA = ('PLXML::baseop_unop');
+our @ISA = ('PLXML::baseop_unop');
sub key { 'lock' }
sub desc { 'lock' }
package PLXML::op_threadsv;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'threadsv' }
sub desc { 'per-thread value' }
# Control (contd.)
package PLXML::op_setstate;
-@ISA = ('PLXML::cop');
+our @ISA = ('PLXML::cop');
sub key { 'setstate' }
sub desc { 'set statement info' }
package PLXML::op_method_named;
-@ISA = ('PLXML::padop_svop');
+our @ISA = ('PLXML::padop_svop');
sub key { 'method_named' }
sub desc { 'method with known name' }
package PLXML::op_dor;
-@ISA = ('PLXML::logop');
+our @ISA = ('PLXML::logop');
sub key { 'dor' }
sub desc { 'defined or (//)' }
package PLXML::op_dorassign;
-@ISA = ('PLXML::logop');
+our @ISA = ('PLXML::logop');
sub key { 'dorassign' }
sub desc { 'defined or assignment (//=)' }
package PLXML::op_custom;
-@ISA = ('PLXML::baseop');
+our @ISA = ('PLXML::baseop');
sub key { 'custom' }
sub desc { 'unknown custom operator' }