izivt
I am not a perl programmer in any way shape or form, but just a suggestion which may help.
When used in the way you have the at command submits the at-job and writes scheduled time and at-job-id to standard error, not STDOUT.
In order to capture standard error as well as STDOUT use |&...