And now that your values are in an array, instead of multiple variables, you will be able to process all of them with just one line of code or two (using sprintf for formatting and foreach or map for processing each value, instead of about 25 lines of code to process each one by one.

solved

problem fixed, the issue was in (\d+).*(\d+) only taking the first digit of $2(in that example) in both the date and the numbers, fixed with: (\d+).*\s(\d+).

I knew you could use: (@some = $thing) =~ ... with s/// but i didnt know it could be used for other regular functions so thanks for the tip. and about sprintf im only half-way through the book so im relying on tmotdi and since this was a logical error issue and not a function problem i was <hopeing> it would be appropriate here.