sub my_lc_warn { not defined wantarray and warnings::warnif("void", "my_lc used in void context"); unless (wantarray) { @_>1 and warnings::warnif("my_lc called in scalar context with extra arguments (".join(",",@_).")"); return lc shift; } else { return map lc $_,@_; } }