Hi,
Two simple and supposedly equivalent scripts follow:
Script 1: test.pl
##############
use Balclutha::User;
my $user = Balclutha::User->login($ARGV[0], $ARGV[1]);
if (defined $user) {
print join ' ', $user->name, ' has groups ', $user->groups, "\n";
}
else {
print "invalid user/pwd\n";
}
Script 2: test.epl
##############
<!DOCTYPE HTML PUBLIC "-//W3C//DTable HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="/balclutha.css">
</head>
[!
use Balclutha::User;
!]
<body>
[*
my $user = Balclutha::User->login($fdat{u},$fdat{p});
if (defined $user) {
*]
User: [+ $user->name +] has groups [+ $user->groups +]<br>
[* } else { *]
Invalid User/Pwd<br>
[* } *]
</body>
</html>
Now for the test ........
[root@mistress perl]# perl test.pl alan alan01
alan has groups alan root web cvs
[root@mistress perl]# embpexec.pl test.epl 'u=fortress&p=fortress'
[4863]ERR: 24: Line 1: Error in Perl code: Undefined subroutine
&Balclutha::Implementations::CourierUser::_getGroups called at
Balclutha/Implementations/CourierUser.pm line 27.
<HTML><HEAD><TITLE>Embperl Error</TITLE></HEAD><BODY bgcolor="#FFFFFF">
<H1>Internal Server Error</H1>
The server encountered an internal error or misconfiguration and was unable
to complete your request.<P>
Please contact the server administrator, and inform them of the time the
error occurred, and anything you might have done that may have caused the
error.<P><P>
[4863]ERR: 24: Line 1: Error in Perl code: Undefined subroutine
&Balclutha::Implementations::CourierUser::_getGroups called at
Balclutha/Implementations/CourierUser.pm line 27.<p>
Offline HTML::Embperl 2.0b3 [Mon Sep 3 07:35:53 2001]<P>
</BODY></HTML>
One or more DATA sections were not processed by Inline.
I am baffled as to why there is an undefined subroutine in the embpexec.pl
invokation (and in the mod_perl request for that matter...).
The Balclutha::User class has amongst supported implementations a
Balclutha::Implementations::CourierUser object which it delegates requests
to, a simple letter-envelope OO paradigm. All the symbols for this are
correctly obtained, the test.pl script verifies this.
The Balclutha::Implementations::CourierUser package uses the Inline package
to wrap some grubby C code which does the work. The _getGroups call is one
of these 'private' functions.
The following statement inside this package,
use Inline (Config =>
DIRECTORY => '/usr/local/apache/_Inline',
ENABLE => 'UNTAINT');
indicates where all these symbols are compiled to and may be found (and
indeed they are ...).
I have used Perl XS/SWIG over the years, but this is my first foray into
Inline (which is remarkably simple to use). To my knowledge an inline'd
package may be treated like all other Perl packages.
Does anyone know what is at issue and how to correct this untoward
behaviour?
Cheers, Alan
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]