in reply to Parse backup log

You're doing a split(/  /), not a split(/\s+/).

By default, split preserves the empty leading fields. That means that you're probably getting empty values in your ($tape_id, $expiration, $date, $time, $status) list.

If you had printed the values out right after split, you'd have seen it.

I suggest you use ($blank,$tape_id, $expiration, $date, $time, $status)=split(/\s+/) and see it that brings you closer to the solution. ($blank will be empty, of course).