Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

problems passing to subroutine

by grashoper (Monk)
on Nov 11, 2007 at 01:03 UTC ( #650104=perlquestion: print w/replies, xml ) Need Help??
grashoper has asked for the wisdom of the Perl Monks concerning the following question:

I need to pass a string to a subroutine but cannot seem to get it to work, here is some sample of what I mean. snippet one is preauth file (pass thru authenticaton) topic obtained from querystring and passed to sub thelp (Hopefully result) which is not working for me. code for sub tHelp follows code snippet from preauth, in addition there is a loop in mLeftIndex() which creates the help file, I am attempting to modify the startpoint of the file..
$User = $Request->item("Login")->item(); $Site = $Request->item("Site")->item(); $topic= $Request->item("Topic")->item(); my $Referer = $Request->ServerVariables("HTTP_REFERER")->item(); $Request->ServerVariables("QUERY_STRING")->item(); use CGI; use OLE; use CGI::Simple; $query= new CGI; %ttopics = ( home => 'Content/HELP/TPO\/default\//TEMPO 5 Help Topics +-01-1.html', listingmgr => 'Content/HELP/TPO\/default\//TEMPO 5 Help Topics +-06-1.html', cma => 'Content/HELP/TPO\/default\//TEMPO 5 Help Topics +-11-1.html', hotsheetmgr => 'Content/HELP/TPO\/default\//TEMPO 5 Help Topics +-10-1.html', clientmgr => 'Content/HELP/TPO\/default\//TEMPO 5 Help Topics +-05-1.html', tempofinancials => 'Content/HELP/TPO\/default\//TEMPO 5 Help Topics +-14-1.html', tools => 'Content/HELP/TPO\/default\//TEMPO 5 Help Topics +-18-1.html', rep => 'Content/HELP/TPO\/default\//TEMPO 5 Help Topics +-12-01.html', taxmgr => 'Content/HELP/TPO\/default\//TEMPO 5 Help Topics +-13-1.html', TempoMemberInfo => 'Content/HELP/TPO\/default\//Tempo_help-01-1.htm +l', email => 'Content/HELP/TPO\/default\//Tempo_help-01-1.htm +l', ); if (!defined($topic)) { my $startpoint='Content/HELP/TPO/default/Tempo_help-08-1.html'; } my $baseurl=''; $nightmare = $ttopics{$topic}; my @topicvalues=$nightmare; my @baseurl=$baseurl; tHelp(@baseurl,@startpoint);
sub tHelp { $baseurl=shift(@baseurl); $startpoint=shift(@topicvalues); $Response->write("$baseurl"."$startpoint"); # This returns values for baseurl and startpoint so far so #good then deeper in my sub when I go to use startpoint it does not work why +? if ($Session->{'usrType'} eq 'Std') { if ($Request->ServerVariables("SERVER_NAME")->item()=~/tempohelp/i +) { #my startpoint='Content/HELP/TPO/default/Tempo_help-08-1.html'; my $target='Tempo%20help_frame'; $str .= shadowBox("Tempo Help", qq^<help_iframe name="$target" startpo +int="$startpoint"/>^ , ($g_docWidth/5*4-(2*$g_docSpace))); return $str; } }
finally code for loop to generate helpfile into iframe.
if ( $Request->ServerVariables("SERVER_NAME")->item() =~ /tempohelp/ ) + { my $toc_file = ( $Session->{'usrType'} eq 'Pro' ) ? 'e:\Suppor +tWeb\Content\HELP\PRO\TOC.html' : 'e:\SupportWeb\Content\help\tpo\def +ault\TOC.html'; my $user_type = uc $Session->{'usrType'}; if ($user_type='STD') {$user_type='TPO/default/'} $startpoint=shift(@topicvalues); open TOC, $toc_file; my @toc_lines = <TOC>; close TOC; foreach my $line ( @toc_lines ) { $content .= qq^<rlink tab="Help" script="frames['help_ifra +me'].location.href='Content/HELP/$user_type/$1'" title="$3"> </rlink>^ if ( $line =~ /<p class="pTOC\d"><a +href="(.*?)"\s+target="(.*?)">(.*?)<\/a>/ ); } $content .= '</leftIndex>'; }

Replies are listed 'Best First'.
Re: problems passing to subroutine
by thezip (Vicar) on Nov 11, 2007 at 01:28 UTC
    1. Once again, you're not using strict nor warnings
    2. In the line that initializes $default_topic, you use an uninitialized version of $topic. $topic is not set until a few lines later
    3. What is the $help_file variable for? You're not using it anywhere...
    4. You don't need to call the tHelp() sub with the preceding '&' as you do with &tHelp()

    Where do you want *them* to go today?
Re: problems passing to subroutine
by dragonchild (Archbishop) on Nov 11, 2007 at 01:23 UTC
    Which subroutine are you attempting to pass a string to? Your snippet doesn't tell me what your problem is.

    My criteria for good software:
    1. Does it work?
    2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
Re: problems passing to subroutine
by kutsu (Priest) on Nov 11, 2007 at 01:20 UTC

    What's the code for the subroutine tHelp?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://650104]
Approved by kutsu
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2018-06-18 03:05 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (107 votes). Check out past polls.