我从一个网站上读到了关于词汇变量的内容,他们解释说,
使用“my”关键字声明的变量是词法变量.
它使用my关键字直到当前块结尾的地方.这是词法变量的范围.
使用“my”关键字声明的变量是词法变量.
它使用my关键字直到当前块结尾的地方.这是词法变量的范围.
我的疑问是,如果范围完成,词汇变量是否从记忆中解放出来?
如果完成范围意味着词汇变量没有从内存中释放出来,那么它何时会从内存中释放出来?谁能清楚地向我解释一下?
解决方法
Perl词法变量喜欢保留它们的内存,以便下次词法在范围内时可以重用它.通常,对于数字,引用,小字符串或散列或具有少量元素的数组,这并不重要.
对于包含大字符串或数组或具有大量元素的哈希的词汇,您可以明确使用undef yourvarname来释放它们的内存. (虽然这只是释放了Perl进程用于其他事情的内存,但不会将其释放到其他进程.)