I think it would be better to bind lexically to the value myself.
What does "bind lexically to the value" mean?
Having some code you pulled in cause side effects is definitely not what most people think of as DWIW.
Well, perhaps not in a language like LISP or Haskell, but it's pretty hard to do something in Perl that doesn't have side-effects. Even looking
at a value can change it (and hence, is a side-effect). Assignment is a side-effect. warn
is a side-effect. Processing @ARGV
is a side-effect. Reading from a handle is a side-effect.
People don't actually mind side-effects. In fact, most people will expect side-effects. What people don't like is unexpected side-effects. But I never advocated not telling what code does.