How to use perl in a website.

Soldato
Joined
29 Apr 2007
Posts
4,841
Location
London
Does no-one know? Hi. I am making a perl site search on my website and have this code

#!perl -w
use strict;
use File::Find;
use CGI qw(:standard);
my $query = param("query");
print header();
print start_html();
print "\n<p>For the query $query, these results were found:</p>\n<ol>\n";
undef $/;

find( sub
{
return if($_ =~ /^\./);
return unless($_ =~ /\.html/i);
stat $File::Find::name;
return if -d;
return unless -r;

open(FILE, "< $File::Find::name") or return;
my $string = <FILE>;
close (FILE);

return unless ($string =~ /\Q$query\E/i);
my $page_title = $_;
if ($string =~ /<title>(.*?)<\/title>/is)
{
$page_title = $1;
}
print "<li><a href=\"$File::Find::name\">$page_title</a></li>\n";
},
'/home/username/public_html');

print "</ol>\n";
print end_html();

End

and this for the search box

<form action="/cgi-bin/search.pl" method="post">
<input name="query" type="text" size="20" maxlength="255" />
<input name="Search" type="submit" id="Search" value="Search" />
</form>

Where do I Put the code in my website so that the script will run?
I have perl, php, mysql apache whatever all enabled

Does anyone know?
 
Last edited:
well i made it as a file .cgi and uploaded it to the directory stated in the search box code. It says internal server error
 
This is what i get




Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request. 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.
More information about this error may be available in the server error log.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
 
Have you set the right permissions on the file? Is the webserver set up for handling perl executables? Do you have access to the webserver logs?
 
Try contacting your hosting provider. Providers often deal with Perl scripts in very different ways, requiring different permissions and directories for the file.
 
Hi there.

Looking at your code there will be a problem if your are trying to run the script from a webhost.

The first line needs to point to the location of perl. Normally this is "#!/usr/local/bin/perl"

You can add the "-w" switch if you like this causes warnings to appear.
 
Back
Top Bottom