#!perl

use strict;
use warnings;
use String::Substitution -copy;

my @names = qw(string pattern replacement);
my %vars;

foreach my $name ( @names ){
	# get value from command line or prompt
	if( !($vars{$name} = shift @ARGV) ){
		print "\u$name: ";
		chomp($vars{$name} = <STDIN>);
	}
}

print " '$vars{string}' =~ s/$vars{pattern}/$vars{replacement}/g\n",
	gsub(@vars{ @names }),
	"\n";
