in reply to Crazyness

this is the sort of thing that a debugger is designed to help with. if you haven't used the perl debugger before, it's never too soon to aquaint yourself with '-d'. (see 'perldoc perldebug'). set a breakpoint at the beginning of the function and step through, checking the value of $var as you go to find out where you lost it. it's almost guaranteed to be a faster way than waiting for us to pick apart your code for you. even if it doesn't help you, it will probably point you towards a much more specific question to ask.

anders pearson

Replies are listed 'Best First'.
Re (tilly) 2: Crazyness
by tilly (Archbishop) on Jul 18, 2001 at 22:30 UTC
    Please note that good programmers disagree with each other on how valuable debuggers are. In the thread starting at Are debuggers good? you will find discussion of both points of view.

    In this case the most obvious problem is the fact that the subroutine is 200 lines long. While I don't like to say that there are absolute rules in programming, whenever the section of code that you are working with does not all fit on your screen at once, bug counts skyrocket. Furthermore a 200 line subroutine has a lot of behaviour encapsulated in a form where you cannot easily work through and fix each function, again a bad thing.

    The usual rule of thumb is that 50 lines should be the maximum function length. The average that I quote for myself is about 10 lines.

    I would far prefer to point a person in that direction than tell them to debug in a way that I personally don't.