sub d :lvalue { print("$_[0]: ", defined($_[1]) ? "[$_[1]]" : "undef", "\n"); $_[1] } our $fred = 78; d("pre local", $fred); d("post local", local $fred); #### pre local: [78] post local: undef #### sub d :lvalue { print("$_[0]: ", defined($_[1]) ? "[$_[1]]" : "undef", "\n"); $_[1] } our $fred = 78; d("pre local", $fred); d("post assign", d("post local", local $fred) = 90); #### pre local: [78] post local: undef post assign: [90]