#!/usr/bin/env perl use strict; use warnings; while(){ print "before: $_";; s|\${%{\$(\w+)}}{'(\w+)'}|\$${1}->{'$2'}|g; print " after: $_";; } __DATA__ my $lValue = ${%{$lHashRef}}{'a'};