#!/usr/bin/env perl -l use strict; use warnings; my $string = 'abc|def'; if ($string =~ /(\S{3})\|(\S{3})/) { print "After first match (in if condition): \$1=$1 \$2=$2"; my $whatever = 'blah'; $whatever =~ s/b/c/; print "After second match (in substitution): \$1=$1 \$2=$2"; } #### After first match (in if condition): $1=abc $2=def Use of uninitialized value $1 in concatenation (.) or string at ./pm_1143443_match_vars.pl line 12. Use of uninitialized value $2 in concatenation (.) or string at ./pm_1143443_match_vars.pl line 12. After second match (in substitution): $1= $2=