Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Hash Problem

by JediWizard (Deacon)
on Mar 08, 2007 at 15:57 UTC ( [id://603838]=note: print w/replies, xml ) Need Help??


in reply to Hash Problem

The above responses will "fix" the error. However, if I were you, I would reconsider why you are passing a glob into ReadParse, as opposed to reference. From the simple example shown, you may even consider simply having ReadParse return a hash and take no input. As I rule, I try to avoid global variables, except when necessary (which it is not in the example given).

#get input my(%input) = &ReadParse(); ## OR my(%input) = (some_input => 'for the sub'); &ReadParse(\%input);

They say that time changes things, but you actually have to change them yourself.

—Andy Warhol

Replies are listed 'Best First'.
Re^2: Hash Problem
by davorg (Chancellor) on Mar 08, 2007 at 16:27 UTC

    All good advice, but unfortunately the poster is constrained by the fact that ReadParse is part of CGI.pm. And the author of CGI.pm was constrained by the fact that ReadParse was written to be a drop-in replacement for the function of the same name from cgi-lib.pl. If you're interested, the code in CGI.pm looks like this:

    sub ReadParse { local(*in); if (@_) { *in = $_[0]; } else { my $pkg = caller(); *in=*{"${pkg}::in"}; } tie(%in,CGI); return scalar(keys %in); }

    Of course, ReadParse was only included in CGI.pm to ease the transition of moving code from cgi-lib.pl to CGI.pm. There's no reason at all why people should be using it these days. If you want to get a hash containing all the parameters (which is kind of what ReadParse does), then CGI.pm provides the far simpler and more flexible Vars function. And in most cases, you probably just want to be using param anyway as others have mentioned.

Re^2: Hash Problem
by ikegami (Patriarch) on Mar 08, 2007 at 16:19 UTC
    ReadParse wasn't written by the OP. It's part of CGI. It's there for backwards compatibility with cgi-lib, CGI's predecessor. (Needless to say, it shouldn't be used in new scripts.)
      Should I use:
      my $loginame=param("loginame");
      my $p_word=param("p_word");
      instead?
        Yes, definitely.
Re^2: Hash Problem
by Anonymous Monk on Mar 08, 2007 at 16:19 UTC
    If a do this way
    #get input
    my(%input) = &ReadParse();
    I am not getting the values of $loginame and $p_word.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (6)
As of 2024-03-28 11:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found