use experimental qw( refaliasing declared_refs ); use Cwd qw( getcwd ); use Variable::Magic qw( cast wizard ); my $wiz = wizard( get => sub { my \$sv = shift; $sv = getcwd(); }, set => sub { my \$sv = shift; chdir( $sv ) or die( "chdir `$sv`: $!" ); }, ); cast my $CD, $wiz;