I didnt expect it, frankly I just had no idea how I can get them. So far I managed to get to the other "special vars" with:
# 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_CALL
+S}."\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.'):='.${$szPac
+kage.'::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.'):='.${$szPackag
+e.'::OVERLOAD'}{$szKey}."\n";
}
}
else {
print STDOUT 'DBGOUT+=%OVERLOAD:='.'undef'."\n";
}
for($i=0;$i<@{$szPackage.'::EXPORT'};$i++) {
print STDOUT 'DBGOUT+=@EXPORT['.$i.']:='.${$szPackage.'::EXPOR
+T'}[$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.'::EX
+PORT_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";
}
The only thing that seems to be wrong are the Regexp Vars. The others seems to work fine. The Output is (reformatted) :
Global : $! : No such file or directory
Global : $" :
Global : $# :
Global : $$ : 1500
Global : $( : 0
Global : $) : 0
Global : $. : 9
Global : $/ : 10
Global : $0 : E:/ESC/GUI/Plugin/IDE/Projects/MyProject/main.pl
Global : $: : 32
Global : $; : 28
Global : $< : 0
Global : $> : 0
Global : $? : 0
Global : $@ :
Global : $ARGV :
Global : $[ : 0
Global : $^A :
Global : $^C : 0
Global : $^D : 0
Global : $^E : Das System kann die angegebene Datei nicht finden
Global : $^F : 2
Global : $^H : 256
Global : $^I :
Global : $^L : 12
Global : $^M :
Global : $^O : MSWin32
Global : $^P : 831
Global : $^R :
Global : $^S : 0
Global : $^T : 1133266342
Global : $^W : 0
Global : $^X : C:\Perl\5.6.1\bin\MSWin32-x86-multi-thread\perl.exe
Global : $_ :
Global : ${^WIDE_SYSTEM_CALLS} : 0
Global : %! : Hash : 39 Keys
Global : %ENV : Hash : 35 Keys
Global : %INC : Hash : 46 Keys
Global : %SIG : Hash : 28 Keys
Global : %^H : Hash : 0 Keys
Global : @ARGV : Array : 0 Elements
Global : @F : Array : 0 Elements
Global : @INC : Array : 10 Elements
Global : @_ : Array : 1 Elements
Package : $VERSION :
Package : $a :
Package : $b :
Package : %EXPORT_TAGS : Hash : 0 Keys
Package : %FIELDS : Hash : 0 Keys
Package : %OVERLOAD : Hash : 0 Keys
Package : @EXPORT : Array : 0 Elements
Package : @EXPORT_OK : Array : 0 Elements
Package : @ISA : Array : 1 Elements
File Handle : $% : 0
File Handle : $- : 0
File Handle : $= : 60
File Handle : $^ : STDOUT_TOP
File Handle : $| : 1
File Handle : $~ : STDOUT
Regular Expression : $& :
Regular Expression : $* :
Regular Expression : $+ :
Regular Expression : $^R :
Regular Expression : $` :
Regular Expression : @+ : Array : 0 Elements
Regular Expression : @- : Array : 0 Elements
Regular Expression : @digits : Array : 0 Elements
So how can I get the Regexp Vars? I didnt understand what you mean in your last sentence!
|