#! /usr/bin/env perl

use strict;

# Syntax: ReplaceValues.pl [<var1>=<Subst1> [<var2>=<Subst> ...]] <Inputfile> [<Inputfile> ...]


# Parse Arguments for strings to substitute

my %Subst = ();

for my $arg (@ARGV) {
    if ($arg =~ /^([^=]+)=(.*)$/) {
	$Subst{$1} = $2;
    }
    else {
	# $arg should be filename here
	&SubstituteDataInFile($arg);
    }
}

exit(0);

#################################################################
sub SubstituteDataInFile($)
    { my ($InFile) = @_;
      open(FI, '<', $InFile) || die("Could not read \"$InFile\"");
      while (my $l = <FI>) {
	  print &SubstituteDataInLine($l);
      }
      close(FI);
  }

sub SubstituteDataInLine($)
	{my ($line) = @_;
	 my $result = $line;
	 for my $k (keys %Subst) {
	    while ($result =~ s/\b$k\b/$Subst{$k}/) {
	    }
	 }
	 return($result);
     }