I realize that I have some redoing to do in relation to the scope/closure
stuff to make the PerlRun/mod_perl transition, and thanks to you all I have
a pretty good idea of what I have to do.   In this regard though, I would
like to ask what you recommend to pass back several paramters from a sub
(question 1)?

What I would like to focus on is the problem I'm havin passing paramters
between programs (question 2).  I asked before if I should be able to see
the correct passed parameters when I pull them across to the module invoked
by the anchor prior to entering a sub in that module (my > $page = new
CGI;$params = $page->param("str");)?  Perrin said Yes, even if y ou have a
scoping problem, code that is in the "main" part of your script, outside of
subs, should be able to see the correct values.

But the stuff is not coming across correctly.   I've verified that the stuff
I pass from m3 is correct.   But if I click on the ss.cgi or vumenu.cgi
anchor 1st and then the other, the other gets passed the paramters of the
first.  The 'str' variable, used to pass the paramters to both, persists
until I recycle the server.   I changed the name of 'str' in the anchors and
each invoked module to make it unique for each module to see if this would
help.  When I did this, the anchor I hit first worked and the second got no
paramters at all.  And the code works right under CGI.   

I'd like to focus on this problem here because I don't feel like I have much
control between the anchor click and the retrival of the paramters in the
invoked module. 

I haven't shown the code because I'm not quite sure how.    That code I
posted before was an atempt to show what I thought might be enough.    The
whole modules are alot to show here.   But I'll give it a 2nd try by posting
more but not all.   

The first module presented is m3.cgi.   I've included the code for this
module down to the anchors that execute ss.cgi and vumenu.cgi at the bottom
of what I've presented for the m3.cgi program.  I've included code from the
2nd module (ss.cgi) down to where the parameters are brought across.   The
code I've included for both modules is in the main portion of each.  The
code for the 2 programs follows.


#####################Beginning of m3.cgi

#!C:/PERL/bin/perl.exe  -w


# Show Model 3 (top level - 1 application installation - copy of level3i)



# Bring in resources.

use strict;
use CGI;
use Getopt::Std;
use File::Copy;
use File::Basename;
use Fcntl qw(:flock);
use Time::Local;
use MongerFile;
use Image::Size;


# Bring client data in.

my $page = new CGI;


# Data space declarations.

# Set to enable/disable totaling calculations.

my $shototltots = 1;
my $shocoltots = 1;
my $shorowtots = 1;
my $shocelltots = 1;

my $celsz = 6; # Number of efforts per cell allowed.

my $county = 0; # 1=county level implementation/0=other

my $databasedir = "C:/Steep/USA Data/"; # Base data directory.


(my $ai, my $row, my $r, my $col, my $c, my $cpos, my $blankx, my $lstr, my
$xlnklen, my $zzx, my $firstcpos) = "";
(my $idesc, my $imeas, my $cnd, my $chg, my $iline, my $xstr, my $xstr2, my
$xs, my $xs2, my $xss2, my $xss3) = "";
(my $dval, my $cmpval, my $pfn, my $pline, my $pnm, my $expd, my $itok, my
$expdem, my $xxfn1, my $xxfn2) = "";
(my $alltots, my $xlnk, my $cnum, my $hdr, my $pic, my $yr, my $mess, my
$viewflg, my $vufiles, my $iferrmsg) = "";
(my $gov, my $govcat, my $govlevel, my $exlevel, my @glines, my $gstr, my
$bogie, my $xcho, my $gotcpos1, my $dn) = "";
(my $sta, my $stri, my $inv, my $tmp, my $match, my $l, my $thedem, my
$orgidfn, my $idlfn, my $govfn, my $dn1) = "";  
(my $cname, my $ctitle, my $cphone, my $cemail, my $dirx, my $oid, my
$docroot, my $servname, my $key, my $dn2) = "";

# Default colors - see custom.parms for color explanations.

my $appbgcolr = 'E6ECFF'; # Screen colors.
my $banrcolr = '809FFF';
my $ltappbgcolr = 'F8F8FF';
my $whitetext = 'FFFFFF';
my $darkbluetext = '000099';
my $inputupdfieldbg = '99CCFF'; # Input/update content entry field
background.
my $anchorcolr = '000099';
my $anchorhovercolr = '0000FF';
my $m3boundrycellbg = '809FFF';
my $m3row1 = 'Sociocultural'; # Model 3 effort row headers.
my $m3row2 = 'Technological';
my $m3row3 = 'Economic';
my $m3row4 = 'Environmental';
my $m3row5 = 'Political';
my $m3row6 = 'Organizational'; # Optional model 3 row.

(my $sec,my $min,my $hour,my $mday,my $mon,my $year,my $wday,my $yday,my
$isdst,my $cntxx,my $capsx,my $smlsx) = 0;
(my $i, my $j, my $icnt, my $jcnt, my $celcnt, my $snum, my $dolrdem, my
$cmpdolr, my $cordolr, my $celpos) = 0; 
(my $totcnd, my $totchg, my $totexp, my $cndacc, my $chgacc, my $expacc, my
$t1, my $t2, my $t3, my $padlen) = 0;
(my $wid, my $ht, my $wid1, my $ht1, my $wid2, my $ht2, my $didit) = 0;
(my $thou, my $mil, my $bil, my $tril) = (1000, 1000000, 1000000000,
1000000000000);

my @caps =
('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
 
my @smls =
('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
 
my @aspects = ("$m3row1", "$m3row2", "$m3row3", "$m3row4", "$m3row5",
"$m3row6"); # Row Headers.
(my @ilines, my @plines, my @hldie1, my @hldie2, my @bt, my @hldem, my
@rtots, my @ctots, my %menuind, my @vustf) = ();


# Get document root and server name.

foreach $key (sort keys(%ENV)) {
      if ($key eq 'DOCUMENT_ROOT') {
        $docroot = $ENV{$key};
      }

      if ($key eq 'SERVER_NAME') {
        $servname = $ENV{$key};
      }
}


# Get government level from ID file and set level indicator.

$orgidfn = "$docroot/org3.ID";

$iferrmsg = "Problem opening ".$orgidfn.".";
open(ORG,"<$orgidfn"); 
flock(ORG,LOCK_SH);
@glines = <ORG>;
close(ORG);
chomp(@glines);

$gov = $glines[2];
$govcat = $glines[1];
$govlevel = $govcat . $gov;
$exlevel = 'level3'; # Execution model.

my $accessfrom = "http://"; . $servname . "/stage/$gov/";
my $putto = $docroot . "/stage/$gov/";


# Construct file names and directory base.

my $thedir = " ";
if ($govcat eq "F") {  
  $idlfn = $databasedir."Federal/".$gov."/Ideals/ideals.dat";
  $govfn = $databasedir."Federal/".$gov."/gov.dat";
  $thedir = $databasedir."Federal/".$gov."/"; 
} elsif ($govcat eq "S") {
    $idlfn = $databasedir."State/".$gov."/Ideals/ideals.dat";
    $govfn = $databasedir."State/".$gov."/gov.dat";
    $thedir = $databasedir."State/".$gov."/";
  } elsif ($govcat eq "R") {
      $idlfn = $databasedir."Regional/".$gov."/Ideals/ideals.dat";
      $govfn = $databasedir."Regional/".$gov."/gov.dat";
      $thedir = $databasedir."Regional/".$gov."/";
    } else {
        $idlfn = $databasedir."UrbanLocal/".$gov."/Ideals/ideals.dat";
        $govfn = $databasedir."UrbanLocal/".$gov."/gov.dat";
        $thedir = $databasedir."UrbanLocal/".$gov."/";
      }


# Load and set custom parameters.

my $cpsfnx = $thedir . 'custom.parms';
if (-e $cpsfnx) {

  $iferrmsg = "Problem opening ".$cpsfnx."."; # Custom parameters.
  open(CPS,"<$cpsfnx");
  flock(CPS, LOCK_SH); 
  my @cpslnsx = <CPS>;
  close(CPS);
  chomp(@cpslnsx);

  my $cpsln = '';
  foreach $cpsln (@cpslnsx) {
    if (index($cpsln,'#') > 1) {
      ($cpsln,$tmp) = split ('#',$cpsln);
    }
    eval($cpsln);
  }

}


# Only do if the needed data files are there.

if (-e $govfn && -e $idlfn) {

  # Load government description data.

  $iferrmsg = "Problem opening ".$govfn.".";
  open(XGOV,"<$govfn"); 
  flock(XGOV,LOCK_SH);
  @glines = <XGOV>;
  close(XGOV);
  chomp(@glines);

  my @endvs = split (/:/, $glines[6]); # Get number of endeavors/columns.
  my $colnm = @endvs; # Number of endeavors.

  my @lnks = split (/:/, $glines[4]); #Get Yesterday, Today, and Tomprrow
links.
  $lnks[0] = $lnks[0] . ':' . $lnks[1];
  $lnks[1] = $lnks[2] . ':' . $lnks[3];
  $lnks[2] = $lnks[4] . ':' . $lnks[5];

  # Add organization aspect if required.

  my $rownm = 5; # Characters in STEEP.
  if ($glines[7] eq "y") {
    $rownm = 6; # STEEPO.
  }

  # Load ideals/efforts.

  $iferrmsg = "Problem opening ".$idlfn.".";
  open(IDLS,"<$idlfn");
  flock(IDLS, LOCK_SH);
  @ilines = <IDLS>;
  close(IDLS);
  my $idlnm = @ilines; # number of ideals
  chomp(@ilines);

  # Roll up efforts with submenus.  
 
  &rollup;

  
  # Find views.

  $viewflg = 0;
  @vustf = <"$thedir*.view">;
  my $vunm = @vustf;
  if ($vunm > 0) {
    $viewflg = 1;
    $vufiles = join ('!',@vustf);
  } else {
      $county = 1; # No special views.
    } 


  # Set the column/row width.

  my $colwid = 225;
  if ($colnm == 4) {
    $colwid = 190;
  }

  my $rowht = 76;
  if ($rownm == 6) {
    $rowht = 65;
  }
  

  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time); #
Get the year.
  $year = $year + 1900; # Current year.


  $xs = $thedir . lc($gov) . "2.gif"; # Put organization GIF 2 in GIF
staging area.
  my $orgimg = $xs; 
  $xss2 = $putto . $gov . "2.gif"; 
  $xss3 = $accessfrom . $gov . "2.gif";

  $xxfn1 = $xs;
  $xxfn2 = $xss2;
  &cftsain; # Copy file to staging area if needed.


  $xstr = $govlevel . ':' . $exlevel;
  $lstr = " steepcm2.cgi?caller=$xstr  ../images/Image10.gif  &nbspPresented
By ©  javascript:mailx() iSTEEPi 
http://steepusa.no-ip.info/cgi-bin/cntinvoks.cgi?mod=m3 ";
  

  # Do welcome stuff.
  
  my $zzx = '';
  my $zzx2 = '';
  my $zzx3 = '';
  if(index($glines[5],';') > -1) { 
    (my $bog, my $wstf) = split(';', $glines[5]);
    
    my @wstf = ();
    @wstf = split('-', $wstf);

    if(index($wstf[1],'http://') == -1) {      
      $zzx = $thedir . $wstf[1];
      ($wid, $ht) = imgsize("$zzx"); # Scale small image proportionately.
      &dodims;
      $wid2 = $wid;
      $ht2 = $ht;
      $dn2 = $dn;  
      $zzx2 = $putto .  $wstf[1];
      $zzx3 = $accessfrom . $wstf[1];

      $xxfn1 = $zzx;
      $xxfn2 = $zzx2;
      &cftsain; # Copy file to staging area if needed.
      
      $zzx = "&nbsp&nbsp&nbsp $zzx3 ";
    } else {
        $zzx = $thedir . $wstf[2];
        ($wid, $ht) = imgsize("$zzx"); # Scale small image proportionately.
        &dodims;
        $wid2 = $wid;
        $ht2 = $ht;
        $dn2 = $dn;
        $zzx2 = $putto .  $wstf[2];
        $zzx3 = $accessfrom . $wstf[2];
 
        $xxfn1 = $zzx;
        $xxfn2 = $zzx2;
        &cftsain; # Copy file to staging area if needed.

        $zzx = "&nbsp&nbsp&nbsp $wstf[1]  $zzx3  "; 
      }      
  }

  ($wid, $ht) = imgsize("$orgimg"); # Scale small image proportionately.
  &dodims;
  $wid1 = $wid;
  $ht1 = $ht;
  $dn1 = $dn;    

  
  print "Content-type:  text/html\n\n";

  print "<HTML><HEAD><TITLE>$gov Efforts</TITLE>

         <STYLE>

              #A {
                  COLOR:\"#$whitetext\";
                  FONT-SIZE:14pt;
                  BACKGROUND-COLOR:\"#$banrcolr\";
                  TEXT-ALIGN:LEFT;
                  FONT-WEIGHT:LESS BOLD;          
                 }
              #B {
                  COLOR:\"#$darkbluetext\";
                  FONT-FAMILY:'Times New Roman';                   
                  FONT-SIZE:'12pt';
                 }      

              BODY {
                    BACKGROUND-COLOR:\"#$appbgcolr\";
                    TEXT-ALIGN:CENTER;
                    COLOR:\"#$darkbluetext\";
                    FONT-SIZE:'14PT';
                   }              

              TD.EA {
                     BACKGROUND-COLOR:'#$m3boundrycellbg';                     
                     TEXT-ALIGN:CENTER;
                     FONT-SIZE:'12PT';
                     COLOR:\"#$darkbluetext\";
                     FONT-WEIGHT:BOLD;                                          
                    }
              TD.ENDV {
                       BACKGROUND-COLOR:\"#$m3boundrycellbg\";
                       TEXT-ALIGN:CENTER;
                       FONT-SIZE:'12PT';
                       COLOR:\"#$whitetext\";
                       FONT-WEIGHT:BOLD; 
                      }
              TD.ASPC {
                       BACKGROUND-COLOR:\"#$m3boundrycellbg\";                  
     
                       TEXT-ALIGN:CENTER;
                       FONT-SIZE:'12PT';
                       COLOR:\"#$whitetext\";
                       FONT-WEIGHT:BOLD;
                      }
              TD.CELL {
                       BACKGROUND-COLOR:\"#$ltappbgcolr\";
                       TEXT-ALIGN:LEFT;
                       FONT-SIZE:'7PT';
                       FONT-FAMILY:'Tahoma';                  
                       COLOR:\"#$darkbluetext\";
                       VERTICAL-ALIGN:TOP;
                      }              
                   
              A {
                 color:\"#$anchorcolr\";
                 FONT-SIZE:'7PT';
                 FONT-WEIGHT:LIGHTER;
                }
              A.l2 {
                    color:\"#$anchorcolr\";
                    FONT-SIZE:'10PT';
                    FONT-WEIGHT:LIGHTER;
                   }
              A.l3 {
                    color:\"#$anchorcolr\";
                    FONT-SIZE:'12px';
                    FONT-WEIGHT:LIGHTER;                                        
                   }  
              
              A:hover {color:\"#$anchorhovercolr\"}
              
              .tn img { border:0 }
              .tn         { border: 0px solid #0000FF; }              
              .tn:hover   { border: 0px solid #660099; }

              .Fbox { BACKGROUND-COLOR:\"#$appbgcolr\"; width: 8%; position:
absolute; top: \"$dn1\"; left: 1px;FONT-SIZE:'10PT';text-indent:38px}  
              .Bbox { BACKGROUND-COLOR:\"#$appbgcolr\"; TEXT-ALIGN:LEFT;
width: 10%; position: absolute; top: \"$dn2\"; left: 90%;FONT-SIZE:'10PT';}   
                
              #postit{
                      position:absolute;
                      width:255;
                      padding:5px;
                      background-color:\"#$ltappbgcolr\";
                      border:1px solid navy;
                      visibility:hidden;
                      z-index:100;
                      cursor:hand;
                     }
                 
         </STYLE>

         <SCRIPT language='JavaScript' type='text/javascript'>

            function mailx() {    
             
parent.location.href='mailto:steepusa'+'\@'+'yahoo.com'+'?subject= ';   
            } // Mail steepusa.


            // Postit functions.

            function showornot() {
              document.all.postit.style.visibility='visible';
            }

            function closeit() {
              document.all.postit.style.visibility='hidden';
            }

         </SCRIPT>

         </HEAD>\n";
 
  print "<BODY>\n";  

  print "  <FORM NAME='ShoIdls' >\n"; 

  my $dblnk = '';
  my $dbfn = $thedir . 'app.ki';
  my $dbimg = '../images/cdev.gif';
  if (-e $dbfn) {
    $dblnk = "&nbsp&nbsp dashboard.cgi?str=$govlevel:3  $dbimg  ";
  } 

  if ($zzx ne '') {
    print"<BR><div CLASS='Fbox'> $xss3 &nbsp&nbsp&nbsp&nbsp</div><div
ID='A'>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp$glines[0]
Efforts<sup style='font-size:12px'> javascript:showornot() ? </sup> -
$year$dblnk</div><div CLASS='Bbox'>&nbsp$zzx</div>\n";
  } else {
      print"<BR><div CLASS='Fbox'> $xss3 &nbsp&nbsp&nbsp&nbsp</div><div
ID='A'>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp$glines[0]
Efforts<sup style='font-size:12px'> javascript:showornot() ? </sup> -
$year$dblnk</div>\n";
    }


  print "    <DIV style='font-size:10pt'>\n"; 

  if ($county) {
    print
"<BR><BR>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
ss.cgi?str=$govlevel Sights/Sounds
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
$lnks[0] Yesterday
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
$lnks[1] Today
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
$lnks[2] Tommorow
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp$lstr\n";
# Table title and links.

  } else { 
      print
"<BR><BR>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
ss.cgi?str=$govlevel Sights/Sounds
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
$lnks[0] Yesterday
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
$lnks[1] Today
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
$lnks[2] Tommorow
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
vumenu.cgi?str=$govlevel~$vufiles Special Views
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp$lstr\n";
# Table title and links. 

    }



#####################ss.cgi begins here

#!C:/PERL/bin/perl.exe  -w

# Copyright © iSTEEPi 2004-2005 - All Rights Reserved 

# Present Organization Sights and Sounds (called from model 2 and 3)



# Bring in resources.

use strict;
use CGI;
use Getopt::Std;
use File::Copy;
use File::Basename;
use Fcntl qw(:flock);
use MongerFile;
use Image::Size;


# Bring client data in.

my $page = new CGI;


# Datatype declarations.

my $databasedir = "C:/Steep/USA Data/"; # Base data directory.

(my $mess, my $lnk, my $govstf, my $govlevel, my $govcat, my $gov, my
$govfn, my $dn, my $xxfn1) = "";
(my $xs, my $xss2, my $xss3, my $docroot, my $servname, my $key, my $tmp, my
$iferrmsg, my $xxfn2) = "";

# Default colors - see custom.parms for color explanations.

my $appbgcolr = 'E6ECFF'; # Screen colors.
my $banrcolr = '809FFF';
my $ltappbgcolr = 'F8F8FF';
my $whitetext = 'FFFFFF';
my $darkbluetext = '000099';

my $ht = 0; # Common image height and width 1 and 2.
my $wid = 0;
my $ht2 = 0; 
my $wid2 = 0;

(my @govstf, my @ss, my @xlnk, my @img) = ();


# Get the document root and server name.

foreach $key (sort keys(%ENV)) {
      if ($key eq 'DOCUMENT_ROOT') {
        $docroot = $ENV{$key};
      }

      if ($key eq 'SERVER_NAME') {
        $servname = $ENV{$key};
      }
}


# Get the paramters from the calling program - shoidls.cgi.

$govlevel = $page->param("str");
$govcat = substr($govlevel,0,1);
$gov = substr($govlevel,1,length($govlevel)-1);

  
This concludes the code for the 2 programs - m3.cgi and ss.cgi.


Question 3 and 4.
If I preload (compile) my application programs into the Apache registry as I
hope to, when I execute under CGI I'm thinking those copies will be used if
I have the correct handler (like the one below) in my Apache httpd?   I
haven't found a package for Apache::RegistryLoader yet and may have to get
it form CPAN.  And when I transition to PerlRun and mod_perl, my
understanding is that I should preload the application programs into the
ModPerl::Registry?

PerlModule Apache::Registry
Alias /cgi-bin/ "/usr/www/steepusa/cgi-bin/"
  <Location /cgi-bin>
     SetHandler perl-script
     PerlResponseHandler Apache::Registry
     Options +ExecCGI     
     PerlOptions +ParseHeaders
  </Location>


Question 5.
If I preload the Perl modules I'm using, do I still need to 'Use' those
modules in my application programs? 

CraigT



Perrin Harkins wrote:
> 
> On 7/6/07, CraigT <[EMAIL PROTECTED]> wrote:
>> Am I passing the paramters in the anchor
>> examples I presented earlier as I should using PerlRun or mod_perl?
> 
> I don't think you ever showed us the code.  You just showed the code
> where you print the HTML.  If you can show us a complete sub and how
> you call it, we can tell you if it looks right.
> 
>> Should
>> I be able to see the correct passed parameters when I pull them across to
>> the module invoked by the anchor prior to entering a sub in that module
>> (my
>> $page = new CGI;$params = $page->param("str");)?
> 
> Yes, even if y ou have a scoping problem, code that is in the "main"
> part of your script, outside of subs, should be able to see the
> correct values.
> 
>> If a subroutine needs many
>> parameters, how would you recommend they be passed?
> 
> Use a hash:
> 
> foo(x => 1, y => 2);
> 
> sub foo {
>     my %args = @_;
>     print $args{x}, $args{y};
> 
>> After simply installing
>> mod_perl, am I using the Apache embedded Perl interpreter or do I have to
>> make the transition to PerlRun or mod_perl for this to occur?
> 
> You have to use PerlRun or some other mod_perl handler.
> 
> - Perrin
> 
> 

-- 
View this message in context: 
http://www.nabble.com/passing-CGI-paramters-tf4008753.html#a11475056
Sent from the mod_perl - General mailing list archive at Nabble.com.

Reply via email to