```{index} single: vars (pragma) ``` # vars Perl pragma to predeclare global variable names ## SYNOPSIS ```perl use vars qw($frob @mung %seen); ``` ## DESCRIPTION NOTE: For use with variables in the current package for a single scope, the functionality provided by this pragma has been superseded by `our` declarations, available in Perl v5.6.0 or later, and use of this pragma is discouraged. See ["our" in perlfunc](core/perlfunc/our.md). This pragma will predeclare all the variables whose names are in the list, allowing you to use them under `use strict`, and disabling any typo warnings for them. Unlike pragmas that affect the `$^H` hints variable, the `use vars` and `use subs` declarations are not lexically scoped to the block they appear in: they affect the entire package in which they appear. It is not possible to rescind these declarations with `no vars` or `no subs`. Packages such as the **AutoLoader** and **SelfLoader** that delay loading of subroutines within packages can create problems with package lexicals defined using `my()`. While the **vars** pragma cannot duplicate the effect of package lexicals (total transparency outside of the package), it can act as an acceptable substitute by pre-declaring global symbols, ensuring their availability to the later-loaded routines. See ["Pragmatic Modules" in perlmodlib](https://perldoc.perl.org/perlmodlib).