#!/usr/bin/perl -w use strict; my %a; $a{foo}[1]{bar}{baz}[3] = "bla"; my $path = sub :lvalue { $_[0]->{foo}[1]{bar}{baz}[3] }; print $path->(\%a),"\n"; $path->(\%a) = "bar"; print $path->(\%a),"\n";