Thanks for your advice. I found this function in perldoc Inline::C-Cookbook. Problem How do I use Inline with mod_perl? Solution package Factorial; use strict; use Inline Config => DIRECTORY => '/usr/local/apache/Inline', ENABLE => 'UNTAINT'; use Inline 'C'; Inline->init; sub handler { my $r = shift; $r->send_http_header('text/plain'); printf "%3d! = %10d\n", $_, factorial($_) for 1..100; return Apache::Constants::OK; } 1; __DATA__ __C__ double factorial(double x) { if (x < 2) return 1; return x * factorial(x - 1) } Discussion This is a fully functional mod_perl handler that prints out the factorial values for the numbers 1 to 100. Since we are using Inline under mod_perl, there are a few considerations to , um, consider. First, mod_perl handlers are usually run with "-T" taint detection. Therefore, we need to enable the UNTAINT option. The next thing to deal with is the fact that this handler will most likely be loaded after Perl's compile time. Since we are using the DATA section, we need to use the special "init()" call. And of course we need to specify a DIRECTORY that mod_perl can compile into. See the above CGI example for more info. perl v5.8.5 Last change: 2002-10-21 9
User Contributed Perl Documentation C-COOKBOOK(1) Other than that, this is a pretty straightforward mod_perl handler, tuned for even more speed! See Also See Stas Bekman's upcoming O'Reilly book on mod_perl to which this example was contributed. Credits Object Oriented Inline I have commented that line, but it doesn't work still. Peter Sinnott <[EMAIL PROTECTED]> wrote: On Wed, Feb 23, 2005 at 04:22:02PM +0800, Jun Ming wrote: > Hi all, > We are using Inline-0.44 as a perl module in Apache 2.0.52 with > mod_perl/1.999.20 in Solaris 2.8. There is some error in Apache's error_log, > please see the details as reference. > > If we use Inline as Example 1, even without any real C program, Apache server > always reports the previous handler "exits signal Segmentation fault" and > restarts the whole handler. This error happens every time except for the > first time when Apache server restarts. And It doesn't happen either if no > more http request to it. > > However, just as example 2, if we comment the contents only regarding Inline, > everything seems in order - Apache doesn't report any error and the process > ID keeps as the previous one. > > Any advice for us? Thanks in advance. Try dropping the call to Inline->init(). I dont recall seeing it called directly before,doesn't seem to cause any problems for me from the cmd line but I have a vague recollections of apache not liking reading from the data section of perl scripts and this is the context the inline man pages refer to init in so it could be part of the problem. -- We exist to competently provide access to corporate leadership skills in order to assertively disseminate cutting edge information to stay competitive in tomorrow's world --------------------------------- Do You Yahoo!? 150万曲MP3疯狂搜,带您闯入音乐殿堂 美女明星应有尽有,搜遍美图、艳图和酷图 1G就是1000兆,雅虎电邮自助扩容!