And one more thing, too: you are iterating over @vals, but you don't seem to be doing anything with those values in your loop. So effectively what you're doing is running the loop (everything from the GetValues call through the end of the elsif) over and over with the same values. If @vals has 3 elements in it (say 'foo', 'bar', and 'baz') you're running the loop 3 times, but doing nothing with 'foo', 'bar', and 'baz'.
"One word of warning: if you meet a bunch of Perl programmers on the bus or something, don't look them in the eye. They've been known to try to convert the young into Perl monks." - Frank Willison