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. |