in reply to Re: Modifying value of $1 clobbers $2, $3 etc?
in thread Modifying value of $1 clobbers $2, $3 etc?

Liz was absolutely right. The $1 .. $3 variables are reset after the second regexp.

To fix the problem, save your $1 .. $3 variables in temporary local variables.

use strict; use warnings; my $str = "Title: Learning Perl Author: Schwartz, Randal L. ISBN: xxx +x"; if ($str =~ /^Title: (.*)\s+Author: (.*)\s+ISBN: (.*)/) { my ($title, $author, $isbn) = ($1, $2, $3); $author =~ s/\.//g; # Remove full stops (periods) print "<$title><$author><$isbn>"; }