I can't replicate your problem with the above source code and Perl 5.14.
If you get this problem with a different program, or different input, you will have to show us that program and that input.
For example, I can provoke that error message by removing an index from the slice after split:
#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; my @fields = 'a' .. 'z'; @fields[ 10, 14, 24, 26] = ('1/2/2016') x 4; # My change is below $_ = sprintf '%04d-%02d-%02d', (split m:/:)[ 0, 1 ] for @fields[ 10, 1 +4, 24, 26 ]; say join ',', @fields; __END__ Missing argument in sprintf at tmp.pl line 8. Missing argument in sprintf at tmp.pl line 8. Missing argument in sprintf at tmp.pl line 8. Missing argument in sprintf at tmp.pl line 8. a,b,c,d,e,f,g,h,i,j,0001-02-00,l,m,n,0001-02-00,p,q,r,s,t,u,v,w,x,0001 +-02-00,z,0001-02-00
So, a likely issue is that you did not use the exact code that choroba posted.
In reply to Re^3: Formatting dates while parsing CSV
by Corion
in thread Add leading zeros to days/months in dates while parsing CSV
by BigRedEO
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |