A couple of points regarding your update, one of which could trip you up, the other being more of a style thing. When you do your regex match you ought to test that the match actually succeeded otherwise you may be reporting the result of some previous successful regex capture. Consider
$ perl -le '
> $s = q{</State><Zip>xyz</Zip><Country>US</Country>};
> $s =~ /<Zip>(.*?)<\/Zip>/;
> print qq{Found $1};
> $s = q{No Zip code here};
> $s =~ /<Zip>(.*?)<\/Zip>/;
> print qq{Found $1};'
Found xyz
Found xyz
$
The styling thing is the use of alternative regex delimiters to avoid having to escape slashes in the pattern. This is usually more of a problem when matching against *nix paths.
$ perl -le '
> $s = q{</State><Zip>xyz</Zip><Country>US</Country>};
> if ( $s =~ m{/<Zip>(.*?)</Zip>} )
> {
> print qq{Found $1};
> }
> else
> {
> print q{No match};
> }'
Found xyz
$
I hope this is of use. Cheers, JohnGG |