变量

如何根据字符串创建Perl变量名?

在Perl中,是否可以基于字符串创建全局变量?例如,如果我有这样的功能:我称之为:我怎么能修改create_glob_var来实际创建一个名为$bar的全局变量?解决方法如果您要清理旧代码,可以编写一个导出所需变量的模块.每当您觉得需要调用create_glob_var时,请将该变量添加到此包并将其放入导入列表中.这将帮助您跟踪正在发生的事情以及变量的使用方式.剧本:输出:

Perl变量范围问题

所以我有一个Perl课程.它有一个sort()方法,我希望它与内置的sort()函数或多或少相同:但我做不到:因为范围.但List::Util模块使用reduce()执行此操作.我查看了List::Util模块,他们做了一些相当讨厌的事情,没有严格的“变量”来实现这一点.我试过了,但无济于事.我的理解是reduce()按照它的方式工作,因为它被导出到适当的命名空间,因此我的类不能这样做,因为该函数在另一个命名空间中非常牢固.这是正确的,还是有一些方式在我的情况下这样做?

perl中的动态变量

解决方法Perl的全局变量概念与CL中的特殊变量非常相似.您可以使用local“遮蔽”全局变量的值:输出:如果您本地化了一个值,则新值在整个动态范围内都可见,即在所有被调用的函数中都可见.一旦通过任何方式留下词法范围,旧值就会恢复.尾调用不会扩展动态范围,而是计为范围退出.请注意,全局变量具有完全限定名称.从不同的包中,你会做类似的事情这通常用于为具有功能(非OO)接口的包提供配置.重要的例子是Carp和Data::Dumper.

如何自动初始化Perl中的所有标量变量?

Perlautomaticallyinitializesvariables默认为undef.有没有办法覆盖这个默认行为并告诉Perl解释器将变量初始化为零(或其他一些固定值)?解决方法CodeComplete中的建议对于诸如C之类的语言非常重要,因为当您拥有时计数器的价值就是占用那段记忆的任何事情.在Perl中,使用时声明变量毫无疑问,$counter的价值不是一些随机垃圾.因此,建议背后的动机,

regex – Perl:查找变量的值是否与数组中的值匹配

我是个新手.我有一个代码,其中变量在foreach循环期间加载了几个值.我想要做的是只在该变量中对该变量执行某些操作.在perl中执行此操作的最有效方法是什么,因为我正在处理的数据非常大.我的问题的一个简单例子是,说我有一系列我想要的水果但是我在foreach循环中有一个$fruit变量,它从一个包含所有不同类型水果的数据文件中获取水果的名称.我如何只挑选@fruits_i_like数组中$fruit的那些案例?

在Perl中,local()可以创建一个变量吗?

我在Stackoverflow和Google中读过许多帖子,告诉我local不会创建变量,而是在现有变量上运行.我在下面有一小段代码,我想知道当没有创建这样的变量时本地是如何工作的.我写这篇文章只是为了理解这个概念而且我对Perl来说相对较新.解决方法除非您使用my声明变量,否则没有完整包规范的变量将进入当前包.以下是您第一次看到变量的用法以及它们的用途:local设置包变量的范围.声明此“动态”

如何使用Perl中的Backticks在两个不同的变量中捕获STDOUT和STDERR

假设我想用我的脚本运行一个带有反引号的外部程序,同时我想捕获STDOUT和STDERR但是在两个不同的变量中.我怎样才能做到这一点?如果没有错误,一切正常,但如果命令引发错误,这个错误将打印在命令行上,我不希望发生这种情况.我也想捕获错误.没有必要在屏幕上打印.有任何想法吗?