Since you say you know how to use Excel through OLE I've ommitted some details here. You can create an array like:
my @swap = (['A','C'],['C','A']);
Then open two sheets and iterate over the rows, like so:
for my $row (0..$lastrow) {
for my $i (0..$#swap) {
$Sheet2->Range($swap[$i][1].$row)->{'Value'} = $Sheet1->Range($swa
+p[$i][0].$row)->{'Value'};
}
}
where $lastrow is gotten from the original sheet. There may be some other way to copy and paste an entire column using OLE commands, but I'm afraid that would take getting into the weeds of the Excel API. This is pretty straightforward, and you could easily implement it as a subroutine.