modperl and attributes

E R <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
Hi all,

I've been playing around with modperl and attributes. Below is the
module I am experimenting with.

When I start up the server I see the warnings coming from the
MODIFY_CODE_ATTRIBUTES routine.
However, when I fetch the url associated with the handler, it reports
that ATTRS = {}.
Moreover, the code addresses for sub1, sub2, and sub3 do not match
what is printed in the warning messages.

Example warnings messages from MODIFY_CODE_ATTRIBUTES:

setting ATTRS for CODE(0x90e44ec) to A1
setting ATTRS for CODE(0x90e44cc) to A2
setting ATTRS for CODE(0x90e442c) to A3

Example output from the handler:

ATTRS = $VAR1 = {};

ADDR sub1 = CODE(0x90da764)
ADDR sub2 = CODE(0x90da744)
ADDR sub3 = CODE(0x90da6a4)

I'm really curious to know what's going on!

Thanks,
ER

====================
package Foo4;

use Apache2::Const qw(OK);

use Data::Dumper;

my $ATTRS = {};

sub MODIFY_CODE_ATTRIBUTES {
  my ($package, $sub, $attr) = @_;
  warn "setting ATTRS for $sub to $attr\n";
  $ATTRS->{$sub} = $attr;
  return;
}

sub handler {
  my $r = shift;

  $r->content_type('text/plain');

  print "ATTRS = ", Dumper($ATTRS), "\n";

  for my $x (qw(sub1 sub2 sub3)) {
    print "ADDR $x = ", \&$x, "\n";
  }

  return OK;
}

sub sub1 : A1 { }
sub sub2 : A2 { }
sub sub3 : A3 { }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.