in reply to printf numification

I've run the code you've given in perl 5.8.5, and I've got what I've expected anyway:

'%d' output : 0042 '%d' output (with +0): 0042 '%f' output : 0042
so %d does numericize for me.

Also you might want to try "%04d" instead of "%4.4d" which should have the same or similar effect.