# Output Perl Special Variables sub OutputGlobalVars { local $| = 1; print STDOUT "DBGOUT+=GLOBAL_VARIABLES_START\n"; print STDOUT 'DBGOUT+=$!:='.$!."\n"; print STDOUT 'DBGOUT+=$":='.$"."\n"; print STDOUT 'DBGOUT+=$#:='.$#."\n"; print STDOUT 'DBGOUT+=$$:='.$$."\n"; print STDOUT 'DBGOUT+=$(:='.$(."\n"; print STDOUT 'DBGOUT+=$):='.$)."\n"; print STDOUT 'DBGOUT+=$.:='.$.."\n"; print STDOUT 'DBGOUT+=$/:='.unpack('U*',$/)."\n"; print STDOUT 'DBGOUT+=$0:='.$0."\n"; print STDOUT 'DBGOUT+=$::='.unpack('U*',$:)."\n"; print STDOUT 'DBGOUT+=$;:='.unpack('U*',$;)."\n"; print STDOUT 'DBGOUT+=$<:='.$<."\n"; print STDOUT 'DBGOUT+=$>:='.$>."\n"; print STDOUT 'DBGOUT+=$?:='.$?."\n"; print STDOUT 'DBGOUT+=$@:='.$@."\n"; print STDOUT 'DBGOUT+=$ARGV:='.$ARGV."\n"; print STDOUT 'DBGOUT+=$[:='.$[."\n"; print STDOUT 'DBGOUT+=$^A:='.$^A."\n"; print STDOUT 'DBGOUT+=$^C:='.$^C."\n"; print STDOUT 'DBGOUT+=$^D:='.$^D."\n"; print STDOUT 'DBGOUT+=$^E:='.$^E."\n"; print STDOUT 'DBGOUT+=$^F:='.$^F."\n"; print STDOUT 'DBGOUT+=$^H:='.$^H."\n"; print STDOUT 'DBGOUT+=$^I:='.$^I."\n"; print STDOUT 'DBGOUT+=$^L:='.unpack('U*',$^L)."\n"; print STDOUT 'DBGOUT+=$^M:='.$^M."\n"; print STDOUT 'DBGOUT+=$^O:='.$^O."\n"; print STDOUT 'DBGOUT+=$^P:='.$^P."\n"; print STDOUT 'DBGOUT+=$^R:='.$^R."\n"; print STDOUT 'DBGOUT+=$^S:='.$^S."\n"; print STDOUT 'DBGOUT+=$^T:='.$^T."\n"; print STDOUT 'DBGOUT+=$^W:='.$^W."\n"; print STDOUT 'DBGOUT+=$^X:='.$^X."\n"; print STDOUT 'DBGOUT+=$_:='.$_."\n"; print STDOUT 'DBGOUT+=${^WIDE_SYSTEM_CALLS}:='.${^WIDE_SYSTEM_CALLS}."\n"; # %! if (scalar keys %{!}) { foreach my $szKey (keys %{!}) { print STDOUT 'DBGOUT+=%!('.$szKey.'):='.$!{$szKey}."\n"; } } else { print STDOUT 'DBGOUT+=%!:='.'undef'."\n"; } # %ENV if (scalar keys %ENV) { foreach my $szKey (keys %ENV) { print STDOUT 'DBGOUT+=%ENV('.$szKey.'):='.$ENV{$szKey}."\n"; } } else { print STDOUT 'DBGOUT+=%ENV:='.'undef'."\n"; } # %INC if (scalar keys %INC) { foreach my $szKey (keys %INC) { print STDOUT 'DBGOUT+=%INC('.$szKey.'):='.$INC{$szKey}."\n"; } } else { print STDOUT 'DBGOUT+=%INC:='.'undef'."\n"; } # %SIG if (scalar keys %SIG) { foreach my $szKey (keys %SIG) { print STDOUT 'DBGOUT+=%SIG('.$szKey.'):='.$SIG{$szKey}."\n"; } } else { print STDOUT 'DBGOUT+=%SIG:='.'undef'."\n"; } # %^H if (scalar keys %{^H}) { foreach my $szKey (keys %{^H}) { print STDOUT 'DBGOUT+=%^H('.$szKey.'):='.$^H{$szKey}."\n"; } } else { print STDOUT 'DBGOUT+=%^H:='.'undef'."\n"; } my $i; for($i=0;$i<@ARGV;$i++) { print STDOUT 'DBGOUT+=@ARGV['.$i.']:='.$ARGV[$i]."\n"; } unless ($i) { print STDOUT 'DBGOUT+=@ARGV:='.'undef'."\n"; } for($i=0;$i<@F;$i++) { print STDOUT 'DBGOUT+=@F['.$i.']:='.$F[$i]."\n"; } unless ($i) { print STDOUT 'DBGOUT+=@F:='.'undef'."\n"; } for($i=0;$i<@INC;$i++) { print STDOUT 'DBGOUT+=@INC['.$i.']:='.$INC[$i]."\n"; } unless ($i) { print STDOUT 'DBGOUT+=@INC:='.'undef'."\n"; } for($i=0;$i<@DB::Underscore;$i++) { print STDOUT 'DBGOUT+=@_['.$i.']:='.$DB::Underscore[$i]."\n"; } unless ($i) { print STDOUT 'DBGOUT+=@_:='.'undef'."\n"; } # Package specific my $szPackage = $DB::package; print STDOUT "DBGOUT+=:=PACKAGE_VARIABLES_START\n"; print STDOUT 'DBGOUT+=$VERSION:='.${$szPackage.'::VERSION'}."\n"; print STDOUT 'DBGOUT+=$a:='.${$szPackage.'::a'}."\n"; print STDOUT 'DBGOUT+=$b:='.${$szPackage.'::b'}."\n"; # %EXPORT_TAGS if (scalar keys %{$szPackage.'::EXPORT_TAGS'}) { foreach my $szKey (keys %{$szPackage.'::EXPORT_TAGS'}) { print STDOUT 'DBGOUT+=%EXPORT_TAGS('.$szKey.'):='.${$szPackage.'::EXPORT_TAGS'}{szKey}."\n"; } } else { print STDOUT 'DBGOUT+=%EXPORT_TAGS:='.'undef'."\n"; } # %FIELDS if (scalar keys %{$szPackage.'::FIELDS'}) { foreach my $szKey (keys %{$szPackage.'::FIELDS'}) { print STDOUT 'DBGOUT+=%FIELDS('.$szKey.'):='.${$szPackage.'::FIELDS'}{$szKey}."\n"; } } else { print STDOUT 'DBGOUT+=%FIELDS:='.'undef'."\n"; } # %OVERLOAD if (scalar keys %{$szPackage.'::OVERLOAD'}) { foreach my $szKey (keys %{$szPackage.'::OVERLOAD'}) { print STDOUT 'DBGOUT+=%OVERLOAD('.$szKey.'):='.${$szPackage.'::OVERLOAD'}{$szKey}."\n"; } } else { print STDOUT 'DBGOUT+=%OVERLOAD:='.'undef'."\n"; } for($i=0;$i<@{$szPackage.'::EXPORT'};$i++) { print STDOUT 'DBGOUT+=@EXPORT['.$i.']:='.${$szPackage.'::EXPORT'}[$i]."\n"; } unless ($i) { print STDOUT 'DBGOUT+=@EXPORT:='.'undef'."\n"; } for($i=0;$i<@{$szPackage.'::EXPORT_OK'};$i++) { print STDOUT 'DBGOUT+=@EXPORT_OK['.$i.']:='.${$szPackage.'::EXPORT_OK'}[$i]."\n"; } unless ($i) { print STDOUT 'DBGOUT+=@EXPORT_OK:='.'undef'."\n"; } for($i=0;$i<@{$szPackage.'::ISA'};$i++) { print STDOUT 'DBGOUT+=@ISA['.$i.']:='.${$szPackage.'::ISA'}[$i]."\n"; } unless ($i) { print STDOUT 'DBGOUT+=@ISA:='.'undef'."\n"; } # Last Regexp print STDOUT "DBGOUT+=REGEXP_VARIABLES_START\n"; print STDOUT 'DBGOUT+=$&:='.$&."\n"; print STDOUT 'DBGOUT+=$*:='.$*."\n"; print STDOUT 'DBGOUT+=$+:='.$+."\n"; print STDOUT 'DBGOUT+=$^R:='.$^R."\n"; print STDOUT 'DBGOUT+=$`:='.$`."\n"; for($i=0;$i<@+;$i++) { print STDOUT 'DBGOUT+=@+['.$i.']:='.$+[$i]."\n"; } unless ($i) { print STDOUT 'DBGOUT+=@+:='.'undef'."\n"; } for($i=0;$i<@-;$i++) { print STDOUT 'DBGOUT+=@-['.$i.']:='.$-[$i]."\n"; } unless ($i) { print STDOUT 'DBGOUT+=@-:='.'undef'."\n"; } for($i=0;$i<@digits;$i++) { print STDOUT 'DBGOUT+=@digits['.$i.']:='.$digits[$i]."\n"; } unless ($i) { print STDOUT 'DBGOUT+=@digits:='.'undef'."\n"; } # File Handle my $hCurrentHandle = select $DB::hOrgFileHandle; my @hFileHandle = ($%,$-,$=,$^,$|,$~); select $hCurrentHandle; print STDOUT "DBGOUT+=FILE_HANDLES_START\n"; print STDOUT 'DBGOUT+=$%:='.$hFileHandle[0]."\n"; print STDOUT 'DBGOUT+=$-:='.$hFileHandle[1]."\n"; print STDOUT 'DBGOUT+=$=:='.$hFileHandle[2]."\n"; print STDOUT 'DBGOUT+=$^:='.$hFileHandle[3]."\n"; print STDOUT 'DBGOUT+=$|:='.$hFileHandle[4]."\n"; print STDOUT 'DBGOUT+=$~:='.$hFileHandle[5]."\n"; }