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

Re: passing vars to a sub

by RazorbladeBidet (Friar)
on Mar 11, 2005 at 15:04 UTC ( [id://438662]=note: print w/replies, xml ) Need Help??


in reply to passing vars to a sub

get_status("@SERVERS[$rev_srv_num{$SERVER}]->[2]","$SERVER");


I highly doubt this is what you want.
First there's not a need to enclose in double quotes
Second, if you are actually passing an array as your first parameter, that's why your sub isn't working.

my $print_subsystem=shift; # chomp ($print_subsystem); # not needed my $server_name=shift;


This will just get the first value of the array as print_subsystem and the second value as server_name (provided there's more than one value).

If you actually want to pass an array as a parameter, pass the reference.

Maybe check perlsub for more info.

One other thing, very quickly - the string comparison operator is "eq" not "=="

Best of luck!

Update:

As my gusto for immediately diving into the code to help usually overtakes my common sense, in the effort of not leading you down the wrong path, I suggest you follow Joost's suggestions first (that is, post how the code isn't working).
--------------
It's sad that a family can be torn apart by such a such a simple thing as a pack of wild dogs

Replies are listed 'Best First'.
Re^2: passing vars to a sub
by tcf03 (Deacon) on Mar 11, 2005 at 15:19 UTC
    "the system call just doesn't run - or perhaps isn't passing the data back to the web page."

    The system call is not passing the printer status back to the web page. running the command from the command line returns the expected output of my printers status.
      Does
      print "you passed $print_subsystem for server $server_name\n",br;
      print out the same thing both times? (hardcoded and passed in)? can you try trammell's suggestion and see what the result is?
      --------------
      It's sad that a family can be torn apart by such a such a simple thing as a pack of wild dogs
        yes It prints the same thing both times. Funny thing though, If I code the following
        print "first pass",br; get_status("cups", "rlinux1"); print "second pass",br; get_status($SERVERS[$rev_srv_num{$SERVER}]->[2], $SERVER);
        I get
        you passed cups for server rlinux1 RSPARE-35 TFIEDLER 117760 Wed Mar 9 16:58:54 2005 RSPARE-37 root 2048 Thu Mar 10 09:17:53 2005 R_NETADMIN-43 TFIEDLER 74752 Thu Mar 10 12:59:19 2005 R_NETADMIN_NB-44 TFIEDLER 74752 Thu Mar 10 12:59:44 2005 RSPARE-45 TFIEDLER 34816 Fri Mar 11 10:23:08 2005 second pass you passed cups for server rlinux1
        passed to my browser
        but If I change the order of the get_status calls (sending the variables in the first pass, and hard coding the second pass),
        I get:
        first pass you passed cups for server rlinux1
        It never makes it to the second pass.

        BTW I tried writing:get_status($SERVERS[$rev_srv_num{$SERVER}]->[2], $SERVER); as $SERVERS[$rev_srv_num{$SERVER}][2] and that doesnt work either

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://438662]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (7)
As of 2024-04-25 11:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found