大佬教程收集整理的这篇文章主要介绍了如何根据字符串创建Perl变量名?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,如果我有这样的功能:
sub create_glob_var { my ($glob_var_str) = @_; # something like this ( but not a hash access). our ${$glob_var_str}; };
我称之为:
create_glob_var( "bar" );
我怎么能修改create_glob_var来实际创建一个名为$bar的全局变量?
我的项目使用的是perl 5.8.5.
编辑
以下不起作用:
use Strict; BEGIN { sub create_glob_var { my ($glob_var_str) = @_; no Strict 'refs'; $$glob_var_str = undef; # or whatever you want to set it to } create_glob_var("bah"); }; $bah = "blah";
生产:
Variable "$bah" is not imported at /nfs/pdx/home/rbroger1/tmp2.pl line 12. Global symbol "$bah" requires explicit package name at /nfs/pdx/home/rbroger1/tmp2.pl line 12. Execution of /nfs/pdx/home/rbroger1/tmp2.pl aborted due to compilation errors.
注意我意识到使用全局变量会导致ozone depletion and male pattern baldness.我正在尝试清理一些已经完全被全局变量感染的遗留代码.一次一个重构……
这将帮助您跟踪正在发生的事情以及变量的使用方式.
package MyVars; use Strict; use warnings; use Exporter 'import'; our($x,%y,@z); our @EXPORT_OK = qw( $x %y @z );
剧本:
#!/usr/bin/perl use Strict;use warnings; use MyVars qw( $x %y @z ); $x = 'test'; %y = (a => 1,b => 2); @z = qw( a b c); use Data::Dumper; print Dumper \($x,@z);
输出:
$VAR1 = \'test'; $VAR2 = { 'a' => 1,'b' => 2 }; $VAR3 = [ 'a','b','c' ];
以上是大佬教程为你收集整理的如何根据字符串创建Perl变量名?全部内容,希望文章能够帮你解决如何根据字符串创建Perl变量名?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。