for ( my $i = 0 ; $i <= @parts ; $i++ ) {
####
for ( my $i = 0 ; $i < @parts ; $i++ ) {
####
use warnings;
use strict;
use Text::ParseWords;
my @Proto = ;
chomp @Proto;
my $Header = shift @Proto;
my @Assembly;
my $Nr = &parsingHeader( $Header, "Number" );
my $Nr_1 = &parsingHeader( $Header, "Number_1" );
my $name = &parsingHeader( $Header, "Name" );
foreach (@Proto) {
my @fields = quotewords( ';', 0, $_ );
$fields[$Nr] =~ tr/0123456789/9876543210/ if defined $Nr;
$fields[$Nr_1] =~ tr/0123456789/9876543210/ if defined $Nr_1;
$fields[$name] =~ tr/A-Za-z/B-Wzb-w/ if defined $name;
push @Assembly, join( ";", @fields ), "\n";
}
unshift @Assembly, $Header;
print @Assembly;
sub parsingHeader {
my $x;
my $Row = shift @_;
my $Column = shift @_;
my @parts = split( /;/, $Row );
for ( my $i = 0 ; $i < @parts ; $i++ ) {
if ( $parts[$i] eq $Column ) {
$x = $i;
last;
}
}
return $x;
}
__DATA__
Number;Name;Age;Gender;Number_1;Dummy
123;Andrew;54;m;123;AAA
234;John;43;m;234;JJJ
345;Helen;23;w;345;HHH