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

Re: atm deposit problem

by davido (Cardinal)
on Jul 20, 2011 at 02:10 UTC ( [id://915566]=note: print w/replies, xml ) Need Help??


in reply to atm deposit problem

chomp your input.

That problem recurs within your script, but isn't the issue.

Also, deposit() is in a different package (ie, a different namespace). It needs to either be exported into the main:: namespace, or called by its fully qualified name. (Bah, you are calling by its fully qualified name. lol)

The real problem however is this line: $b = @_; Evaluating an array in scalar context will assign to $b the number of elements in @_. Try $b = shift;, or $b = $_[0].

Updated to discuss deposit() function.


Dave

Replies are listed 'Best First'.
Re^2: atm deposit problem
by tospo (Hermit) on Jul 20, 2011 at 08:22 UTC
    or, for completeness sake and because it's frequently used:
    ($b) = @_;
    This will be useful once you need more than one value off the list, as you can do
    ($a, $b, $c) = @_;
    Some additional advice: get into the habit of using "strict" and "warnings" in every Perl script you write and declare variables with "my" or "our" (which should be the exception). You can quickly create a mess in a longer script simply with typos in variable names, which are not caught without using "strict". Using "warnings" will help you, among other things, to find variables you are using but have never assigned anything to. What you do in the Perl script is to put this in the top of the script:
    use strict; use warnings;
    Your code tries to keep a balance but there is no way of accessing it. What you are really trying to write is a "Checking" class. BTW: the name seems a bit awkward (it's not checking, it's making a transaction), always try to find a descriptive name for your packages and subroutines, if you can't find one then this might indicate that its task isn't well defined. You could explore object oriented coding to handle this in a better way or let your main script keep the balance. I hope this isn't too confusing.

      It sounds like checking as in "checking account" (or "chequing" to make it less US and more clear).

        "less US and more clear" now, thanks :-)

      Thanks all, your information much appreciated, issue resolved

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (4)
As of 2024-03-28 23:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found