启用实验功能时,编译顺序为什么重要?

时间:2019-02-03 21:15:24

标签: perl pragma

featuresuse version的顺序是否重要?

use feature 'signatures';
use v5.026;

vs

use v5.026;
use feature 'signatures';

顶部将产生错误

  

全局符号要求使用明确的软件包名称

use feature 'signatures';                                                                                        
use v5.026;                                                                                                      

sub foo ($opt1, $opt2 = undef) {                                                                                 
  say $opt1 if $opt2;                                                                                            
}

1 个答案:

答案 0 :(得分:7)

该版本的use v5.026声明implicitly enables feature bundle,在这种情况下,它等同于no feature ':all'; use feature ':5.26'。这将覆盖您已启用/禁用的功能。