How would I write that in front of the call to perl. I did the following
but am getting errors:
[-
sub newsedit
{
unshift(@INC, '/webServer/virtualDW/cannonschool.org/cgi-bin/newsEdit2') ;
open FH, ($ENV{QUERY_STRING} = "name=Homepage" "/usr/bin/perl
/webServer/virtualDW/cannonschool.org/cgi-bin/newsEdit2/depart
ment.cgi|")
or die "Cannot start cgi";
while (<FH>) {
print OUT $_;
}
close (FH);
}
-]
I tried substituting
> > my ($self, $department) = @_;
with
> $ENV{QUERY_STRING} = "name=Homepage";
and nothing appeared on the page.
Thanks for your help. I appreciate it very much.
Gary
On Thu, 31 May 2001, Wim Kerkhoff wrote:
> I've suggested one thing below that may getting your first approach
> going.
>
> There still must be a better way though... Creating a new instance of
> the perl interperter is messy.
>
> Gary Nielson wrote:
> >
> > Thank you! I had not realized you had sent a previous email as well. I
> > tried this solution and so far, it has not worked -- and I have some
> > questions about that. But I did find another solution that does work, and
> > I wanted to share that and see if there is any disadvantage to this
> > approach, if there might be more performance degradation this way or not.
> >
> > First, the problems I encountered with the first approach.
> > I realized that the newsedit, encrypted perl application relies on
> > a variable passed to the apache Web server before initiating
> > the cgi script (see below). When I invoked:
> >
> > [-
> > sub newsedit
> > {
> > my ($self, $department) = @_;
> > unshift(@INC,
> > '/webServer/virtualDW/cannonschool.org/cgi-bin/newsEdit2') ;
>
> Instead of tacking on ?name=Homepage when executing a CGI via a system
> call, or from the command line, I believe you need to do something like
> this:
>
> $ENV{QUERY_STRING} = "name=Homepage";
>
> If that doesn't work, maybe try adding QUERY_STRING=\"name=Homepage\" in
> front of /usr/bin/perl on the next line:
>
> > open FH, ("/usr/bin/perl
> >
>/webServer/virtualDW/cannonschool.org/cgi-bin/newsEdit2/department.cgi?name=Homepage|")
> or
> > die "Cannot start cgi";
> > @output = <FH> ;
> > close FH ;
> > print OUT @output ;
>
> You may want to change this code. Currently it reads all of the output
> of the CGI into a scaler, then prints it out. You could change it to
> print each line as it receives it from the pipe:
>
> while (<FH>) {
> print OUT $_;
> }
> close (FH);
>
> This will use less memory, and the browser will get data as it comes
> available, not in one huge chunk after waiting 2 seconds.
>
> > }
> > -]
> >
> > it did not work and I suspected that was why. I do not know for sure. Does
> > this make sense?
> >
> > When invoked through exec cgi, it passes the following to the apache web
> > server:
> >
> > <!--#set var="name" value="Homepage" -->
> > <!--#exec cgi="/cgi-bin/newsEdit2/department.cgi" -->
> >
> > But then I thought of another way. I do not know if this is a good
> > solution or not, but it does work:
> >
> > [-
> > sub writepage
> > {
> > use LWP::Simple;
> > my ($self, $department) = @_;
> >
>$graburl="http://www.cannonschool.org/cgi-bin/newsEdit2/department.cgi?name=$department";
> > print OUT (get $graburl);
> > }
> > -]
> >
> > I invoke it in an html file as:
> >
> > [- $subs = $param[0];
> > $subs->writepage ("Homepage");
> > -]
> >
> > and it comes up. Now I am wondering if by having to make a DNS request to
> > the domain, if I am creating more work and therefore slowing down
> > execution more than if I could actually get the first solution to work
> > right. Or if invoking another instance of perl, in either case, amounts to
> > about the same amount of work. What do you think, and if you think the
> > first approach is the better way, what am I still doing wrong?
>
> Try and get the first approach to work; it will be much faster and
> easier on the server. With the second approach, two requests are done
> for every request to the Embperl page.s
>
>
--
Gary Nielson
[EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]