A quick suggestion for other's looking at the code. Click the download button first thing, so you can see the code formatted nicely in a separate window.
For someone who doesn't write code professionally, writing Perl for their own satisfaction, this is not bad code. You're clearly working at structuring the code for clarity. That's something that takes time to develop, but you've got a good start. Pick up a copy of Perl Best Practices. It's a very readable style guide that you'll probably enjoy reading.
I only have two specific suggestions for the code, at this point in your learning
- Use of 'false' as a false value, as in "until ($variable eq 'false')" is likely to get you in trouble in the long run, since 'false', 'False' and 'FALSE' all evaluate as true.
- Preceeding function names with "&" is increasingly less common since Perl4, and its meaning is changed in Perl6 to mean a function reference. If the purpose is to distinguish your own fuctions from built-ins, consider starting function names with with an initial upper case letter.
Good luck, and may you have many happy hours of Perl writing.