in reply to printing an array with references in it

I took tilly's suggestion about looking through the symbol table and came up with the following code:
my %test_procs; foreach my $sym (sort keys %main::){ if(defined &{$main::{$sym}}){ $test_procs{\&{$main::{$sym}}} = $sym; } } foreach my $sub_ref (keys %test_procs){ foreach(@procs){ print "$test_procs{$sub_ref}\n" if $sub_ref eq $_; } }

From the small amount of testing I did, it seems to do what he asked for; however, as you can see, the code is fairly messy. I would be interested in seeing how other more experienced monks would improve upon/rewrite this.
UPDATE: fixed a typo
Cheers, Missing Words

Replies are listed 'Best First'.
Re: Re: printing an array with references in it
by yosefm (Friar) on Jun 30, 2003 at 15:12 UTC
    foreach my $sub_ref (keys %test_procs){ foreach(@procs){ print "$test_procs{$sub_ref}\n" if $sub_ref eq $_; } }

    This could be:

    foreach(@procs){ print "$test_procs{$_}\n" if $test_procs{$_}; #If it's defined. }