in reply to how to print out a variable name and its value
hackish solution:
sub print_variable { local *print_variable = $_[0]; my $name = $print_variable; for (keys %::){ next if /^print_variable$/; print "$_ = $name\n" if *{$::{$_}}{SCALAR} eq *{$::{print_variable}}{SCALAR}; } } $firstname = "Edward"; $var = 1; print_variable( *firstname ); print_variable( *var ); __END__ firstname = Edward var = 1
Doesn't work with my variables, only with symbol table entries. Also, if you alias a typeglob, you get them all:
$firstname = "Edward"; *surname = *firstname; print_variable( *firstname ); __END__ firstname = Edward surname = Edward
update: fixed b0rken code...
--shmem
_($_=" "x(1<<5)."?\n".q·/)Oo. G°\ /
/\_¯/(q /
---------------------------- \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
|
|---|