我知道我在Perl是什么。它定义一个只存在于定义它的块的范围内的变量。我们做什么?我们与我有什么不同?
解决方法
伟大的问题:我们和我有什么不同,我们做什么?
综上所述:
从Perl 5可用,我是一种声明方式:
>非包变量,即
>私人,
>新,
>非全局变量,
>与任何包分开。所以变量不能以$ package_name :: variable的形式访问。
另一方面,我们的变量是:
>包变量,因此自动
>全局变量,
>绝对不是私人,
>也不一定是新的;和他们
>可以在包外(或词法范围)使用
限定名称空间,如$ package_name :: variable。
使用声明变量允许您预先声明变量,以便在使用strict下使用它们,而不会产生打字警告或编译时错误。自从Perl 5.6以来,它已经取代了过时的使用vars,它只是文件范围的,而不是像我们的词法作用域。
例如,package main中变量$ x的形式化限定名为$ main :: x。声明$ x允许在声明的范围内,当脚本使用strict strict或使用strict“vars”时,使用没有惩罚的裸露的$ x变量(即没有产生错误)。范围可能是一个,两个或更多包或一个小块。