##
a:b:c:d:e
f:g:h:i:j
k:l:m:n:o
p:q:r:s:t
u:v:w:x:y
####
use File::Copy;
use strict;
my (@col, $val, $i);
open(COL, ") {
push @col, $_ =~ m/(.*?):/;
}
close(COL);
open(OUT, ">out.txt");
open(COL, ") {
($val) = $_ =~ m/(.*?):/;
$_ =~ s/(.*?)(?=:)/$col[$i++]/ unless $val =~ m/^\s*$/;
print OUT $_;
}
close(COL);
close(OUT);
copy("out.txt", "original.txt");
## ##
a:2:3:4
f:6:7:8
:9:10:11
k:13:14:15
:17:18:19