|
Posted by smallpond on April 1, 2008, 8:40 am
Please log in for more thread options > some day i read a book telling that it may be useful to print a variable
> name for debugging purpose. since i was new that moment, i just skipped it.
> now when i want to use this feature, i no longer get back where it is.
> google search using perl and "print variable name" does not return good
> results. And I am not going to use hash because i just want to debug, e..g.
> I expect
>
> $var1 = 3;
> $ALongVariable = "hahahaha";
>
> debug($var1);
> debug($ALongVariable);
>
> sub debug {
> $dvar = shift;
> some more codes here?
> print $dvar;
> print "\n";
>
> }
>
> =======
> to print out:
>
> $var1 : 3
> $ALongVariable : hahahaha
>
> Could anybody help?
That can't work since only the value is passed to your
debug sub, not the variable.
You can get to package variables through the symbol table
but I don't know how to get to lexicals.
perl -e 'our $foo=5; print join "\n", keys %main::;' |grep foo
foo
perl -e 'my $foo=5; print join "\n", keys %main::;' |grep foo
<== no package variable named 'foo'
|