The addition of `rxvt_unicode_with_perl` confuses matters, because for users of nix-env this package is indistinguishable from `rxvt_unicode` -- both expressions produce a package that's called "rxvt-unicode-9.16", and there's no telling which is which. What is the reason for disabling perl support in rxvt_unicode in the first place? Maybe we should just change that setting without introducing an alternative expression for the same name?

In any case, you probably want to define this attribute as

     rxvt_unicode_with_perl = rxvt_unicode.override { perlSupport = true; };

..., which is easier and more readable than duplicating the whole callPackage thing.