vars - Perl 语言的预声明全局变量名称的 pragma
use vars qw($frob @mung %seen);
注意:对于在当前包中单个作用域内使用的变量,此 pragma 提供的功能已被 Perl v5.6.0 或更高版本中提供的 our 声明所取代,建议不要使用此 pragma。请参阅 "our" in perlfunc.
此 pragma 将预声明列表中所有变量的名称,允许您在 use strict 下使用它们,并禁用对它们的任何拼写错误警告。
与影响 $^H hints 变量的 pragma 不同,use vars 和 use subs 声明不会按词法作用域限制在它们出现的代码块中:它们会影响它们出现的整个包。无法使用 no vars 或 no subs 取消这些声明。
诸如 AutoLoader 和 SelfLoader 之类的包,它们延迟加载包中的子例程,可能会在使用 my() 定义的包局部变量方面造成问题。虽然 vars pragma 无法复制包局部变量的效果(在包外部完全透明),但它可以通过预声明全局符号作为可接受的替代方案,确保它们可供以后加载的例程使用。