use warnings; $_ = 'oooooo'; s/(o)$1/foo/; s/(o)\1/foo/; s/(o)/\1/; s/(o)/$1/; __END__ Use of uninitialized value in concatenation (.) at script line 3. \1 better written as $1 at script line 5.