|
Posted by Brian McCauley on September 10, 2004, 9:54 pm
Please log in for more thread options
Allen Wooden wrote:
> I'm having trouble getting this to work
> under mod_perl 1.29/Apache 1.3.31
>
> #!/usr/local/bin/perl -w
> use strict;
> use warnings;
>
> use CGI qw(:standard :html3 -no_xhtml -newstyle_urls );
>
> use Net::IP::Match;
>
> my ($search, $q);
> $q = new CGI;
> $search = $q->param('search');
>
> if ( __MATCH_IP($search, qw{ 10.0.0.0/8 169.254.0.0/16 172.16.0.0/12
> 192.168.0.0/16 223.0.0.0/8 224.0.0.0/3 127.0.0.0/8 }))
> {
> print $q->header;
> print $q->start_html;
> print $q->blockquote("Looks like it works");
> print $q->end_html;
> }
>
>
> running this from command line works fine, however when run via
> http://host/cgi-bin/test.pl?search=10.1.1.1 gives an internal server
> error:
>
> PerlRun: `Undefined subroutine
> &Apache::ROOT::cgi_2dbin::test_2epl::__MATCH_IP called at /usr/loc
> al/apache/cgi-bin//test.pl line 14.n'
It looks to me like source filters and eval() don't mix well.
(Apache::Registry uses eval to compile test.pl as a module.)
(Net::IP::Match uses source filters)
|