|The stupid question is the question not asked|
"If I would like to print the output with localtime instead of epoch time (in the output) can I use this function : ..."
Instead of asking if you can use it, just use it. If it does what you want, you've learnt something; if it doesn't do what you want, you've still learnt something; and, if you make a mistake and get a warning or error message, you've learnt even more. It won't melt your keyboard, explode your mouse or cause your screen to burst into flames. :-)
"Also instead of a specific time mentioned, if I want to filter restults for every one hour (say first 15:13, then 16:13... 17:13 and so on until the end of data) how could I do that..."
That should be really obvious from the code I posted. I strongly recommend that, before reading anything else, you study perlintro -- a brief introduction and overview of Perl.
"... I am learning perl a lot, i m a very new beginner so making a lot of mistakes ..."
We all make mistakes; even those who've been writing Perl (or, indeed, any language) for decades still mistakes. Mistakes are good: you'll learn a lot from making mistakes. You'll learn nothing from just copying someone else's code (with all the mistakes already fixed).
As you're clearly very new to Perl, here's some additional documentation links that may further help with the original code I posted (and with any code you write in the future):
If, after writing some code, you encounter a hurdle you can't resolve yourself, post a question here using the guidelines in "How do I post a question effectively?".