Acme-Innuendo

 view release on metacpan or  search on metacpan

lib/Acme/Innuendo.pm  view on Meta::CPAN

  return unless ($root);

  foreach my $sym (keys %$root) {
    my $ref = $root->{$sym};
    if ($sym =~ m/::$/)  {
      walk_the_dog($ref, $callback), if ($sym ne 'main::');
    }
    else {
      &$callback($root,$sym,$ref);
    }
  }
}


1;
__END__


=head1 NAME

Acme::Innuendo - polite access to Perl's private parts

=head1 SYNOPSIS

  use Acme::Innuendo;

  # Create an alias

  nudge_nudge( special_place(), "alias_sub",
    wink_wink( special_place(), "some_sub" )
  );

  # Walk the symbol table

  walk_the_dog( special_place(), sub {
    my ($namespace, $symbol, $ref) = @_;
    print $namespace, $symbol, "\n";
  } );


=head1 DESCRIPTION

This module provides an alternative method of addressing the symbol
table for those who condider it akin to "touching Perl's genitals."

=over

=item special_place

  $root_namespace = special_place();

  $module_namespace = special_place( $module_name );

Returns the name space of the specified module, or the root namespace
if no module is specified.

=item wink_wink

  $ref = wink_wink( $namespace, $symbol );

Returns the glob for the symbol in the given namespace, if it exists.

=item nudge_nudge

  nudge_nudge( $namespace, $symbol, $ref );

Changes or adds the symbol in the namespace.

=item walk_the_dog

  walk_the_dog( $namespace, sub { ... } );

Walks a namespace and sends symbol information to the callback routine.

=back

=head1 SEE ALSO

This module is a bit of humor.  For more serious applications, see the
following modules on CPAN:

  Alias
  Devel::LexAlias
  Lexical::Alias
  Package::Alias
  Tie::Alias
  Tie::Alias::Array
  Tie::Alias::Handle
  Tie::Alias::Hash
  Variable::Alias

=head1 AUTHOR

Robert Rothenberg <rrwo at cpan.org>

current Maintainer: Rene Schickbauer <rene.schickbauer at gmail.com>


=head1 REPORTING BUGS

We don't know of any bugs, but that doesn't mean there aren't any.
Please the CPAN bugtracker or mail Rene Schickbauer directly.

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2004 by Robert Rothenberg.  All Rights Reserved.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.3 or,
at your option, any later version of Perl 5 you may have available.

Now maintained by Rene Schickbauer, so i guess everything after version 0.02
is (C) 2010 Rene Schickbauer

=cut



( run in 1.900 second using v1.01-cache-2.11-cpan-7fcb06a456a )