use 5.020; use warnings; my %h = ( foo => 1, bar => 2 ); $_ = 'foobar'; s/(foo)/$h{'$1'}/; say $_; $_ = 'foobar'; s/(foo)/$h{$1}/; say $_; my $foo = 'foo'; say "$h{'$foo'}bar";