use strict;
use warnings;
use Text::CSV;
die "usage: $0 SourceFile TargetFile MappingFile\n" if @ARGV < 3;
my $csv = Text::CSV->new({ auto_diag=>1, binary=>1, eol=>"\n" });
my %map;
open my $MAP, '<', $ARGV[2] or die "Can't read $ARGV[2]: $!";
while (my $row = $csv->getline($MAP)) {
my ($old_cost, $old_act, $new_cost, $new_act) = @$row;
$map{$old_cost}{$old_act} = [$new_cost, $new_act];
}
close $MAP;
open my $IN, '<', $ARGV[0] or die "Can't read $ARGV[0]: $!";
open my $OUT, '>', $ARGV[1] or die "Can't write $ARGV[1]: $!";
while (my $row = $csv->getline($IN)) {
if (my $new = $map{$row->[6]}{$row->[7]}) {
$row->[6] = $new->[0];
$row->[7] = $new->[1];
}
$csv->print($OUT, $row);
}
close $IN;
close $OUT;
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|