in reply to printf not behaving as expected

As an aside, you could save yourself a lot of typing by assigning the split directly to your scalar variables.

my( $cat_key, $call_seq, $copy_num, $item_resctl, $item_id, $num_copies, $call_holds, $num_reserve_controls, $bound_level, $callnum, $num_callnums, $review, $cat_acnt, $status, $copies_on_order, $title_holds, $title, ) = split /\|/;

I hope this is useful.

Cheers,

JohnGG