Hi, let's suppose we have tab-separated data like that in the lines after the __DATA__ token and we want to swap columns two and three:
use strict;
use warnings;
while (<DATA>) { # go through data line by line
chomp; # don't forget to remove newline character
my @fields = split /\t+/;
print join "\t", # join fields with tab
@fields[ 0, 2, 1 ], # select fields using array slice
"\n";
}
__DATA__
Col1 Col2 Col3
a b c
1 2 3
To work with files, just
- add $^I = ".bak"; before the while loop to edit files in place keeping backups
- replace <DATA> with <> (diamond operator)
and then run the program like this:
$ perl script.pl *.dat
Excellence is an art won by training and habituation: we do not act rightly because we have virtue or excellence, but we rather have these because we have acted rightly. -- Will Durant
|