Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

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='http://www.tempohelp.com/index.asp?tab=Help&View=#'; $nightmare = $ttopics{$topic}; my @topicvalues=$nightmare; my @baseurl=$baseurl; tHelp(@baseurl,@startpoint);
tHelp
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>'; }

Comment on problems passing to subroutine
Select or Download Code
Re: problems passing to subroutine
by kutsu (Priest) on Nov 11, 2007 at 01:20 UTC

    What's the code for the subroutine tHelp?

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 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?

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://650104]
Approved by kutsu
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (4)
As of 2014-09-20 05:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (153 votes), past polls