Comment puis-je liste toutes les variables qui sont dans une portée?

Je sais que je peux la liste de tous les colis et lexcial de variables dans une étendue donnée à l'aide de Padwalker's peek_our et peek_my, mais comment puis-je obtenir les noms et les valeurs de toutes les variables globales comme $" et $/?

#!/usr/bin/perl

use strict;
use warnings;

use PadWalker qw/peek_our peek_my/;
use Data::Dumper;

our $foo = 1;
our $bar = 2;

{
    my $foo = 3;
    print Dumper in_scope_variables();
}

print Dumper in_scope_variables();

sub in_scope_variables {
    my %in_scope = %{peek_our(1)};
    my $lexical  = peek_my(1);
    #lexicals hide package variables
    while (my ($var, $ref) = each %$lexical) {
        $in_scope{$var} = $ref;
    }
    ##############################################
    #FIXME: need to add globals to %in_scope here#
    ##############################################
    return \%in_scope;
}
InformationsquelleAutor Chas. Owens | 2009-04-14