===> Expectations - perl v7 is declared to be perl v5.XX, one of features in bundle will be 'indirect' - with feature indirect will be default off - enabling of feature indirect will be prohibited in v8 ===> Code, running perl-5.XX, module already compatible with v7 use v7; use feature 'indirect'; # perl-5.XX knows about bundle v7 so this is legal code and use will succeed # enabling 'indirect' will raise deprecation warning ===> Code, running perl-7, module incompatible with v7 # use v7 is default ("base protocol") use v5.XX; use feature 'indirect'; # v5.XX is known protocol to v7 # enabling 'indirect' will raise deprecation warning ==> Code, running perl-8 use v5.XX; # compile time error, protocol cannot be enabled due 'indirect' ==> Code, running perl-5.XX use experimental v8; # or "use v8-preview" use feature 'indirect'; # compile time error, protocol cannot be enabled due 'indirect' # as far as it's already decided to get rid of feature 'indirect' # one can write as v8-compatible code as possible