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 #### $firstname = "Edward"; *surname = *firstname; print_variable( *firstname ); __END__ firstname = Edward surname = Edward