#!/usr/bin/perl -w use strict; my $text= "start \\chapter{hello}\n end\n"; my $patternreadfromfile= "-- FOUND \$1 -- "; my $inpattern = qr/\\chapter\{(.*)\}/; my $outpattern = q{$patternreadfromfile}; $text =~ s/$inpattern/$outpattern/gee; print "$text\n"; now q{} escapes too much...