On 17/03/2016 17:25, Charles T. Smith wrote:
On Thu, 17 Mar 2016 19:08:58 +0200, Marko Rauhamaa wrote:

    my $str = "I have a dream";
    my $find = "have";
    my $replace = "had";
    $find = quotemeta $find; # escape regex metachars if present
    $str =~ s/$find/$replace/g;
    print $str;

with Python:

    print("I have a dream".replace("have", "had"))

Uh... that perl is way over my head.  I admit though, that perl's
powerful substitute command is also clumsy.  The best I can do
right now is:

$v =  "I have a dream\n";
$v =~ s/have/had/;
print $v

I was going to suggest just using a function. But never having coded in Perl before, I wasn't expecting something this ugly:

sub replacewith{
   $s = $_[0];
   $t = $_[1];
   $u = $_[2];
   $s =~ s/$t/$u/;
   return $s;
}

Although once done, the original task now looks a proper language:

print (replacewith("I have a dream","have","had"));

--
Bartc
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to