相关疑难解决方法(0)

如何在Perl中将变量用作变量名?

我需要在perl中实现以下功能

printmsg(@val1, $msg1) if @val1;
printmsg(@val2, $msg2) if @val2;
printmsg(@val3, $msg3) if @val3;
printmsg(@val4, $msg4) if @val4;
printmsg(@val5, $msg5) if @val5;
printmsg(@val6, $msg6) if @val6;
Run Code Online (Sandbox Code Playgroud)

所以我写了下面的代码片段

for(my $i=1; $i < 6; $i++ ) {
    printmsg(@val$i, $msg$i) if @val$i;
}
Run Code Online (Sandbox Code Playgroud)

它不起作用并且会出错.

perl symbolic-references

13
推荐指数
2
解决办法
5576
查看次数

如何在Perl中使用符号引用?

在Perl中,如果变量保存另一个变量的名称,如何使用第一个变量访问另一个变量?

例如,让我们

$name = "bob";
@bob = ("jerk", "perlfan");
Run Code Online (Sandbox Code Playgroud)

我该怎么用$ name来了解bob是什么样的人?虽然我不太确定,但我模糊的记忆告诉我它可能与typeglob有关.

variables perl

4
推荐指数
2
解决办法
3219
查看次数

为什么我不能使用插值变量作为varname?

不幸的是,我没弄明白,为什么$alfa仍然是空的:

use 5.014; 
no strict 'refs';

my $berta = 5;
my $gamma = 'berta';
my $alfa = ${$gamma};

say "'$alfa'";
Run Code Online (Sandbox Code Playgroud)

必须是非常简单的事情...我期待$alfa成为5这里.我错过了什么?

perl

3
推荐指数
1
解决办法
88
查看次数

在Perl中,如何使用变量的内容作为哈希的名称?

下面的代码只适用于没有严格的代码.谁能建议一个更好的方法呢?

%hash5=('key5', 5);
my $hash_name = 'hash5';
print $$hash_name{'key5'}, "\n";
Run Code Online (Sandbox Code Playgroud)

我的目标:我不知道哈希名称.我只知道,它存储在变量$ hash_name中.人们一直在建议:

 my $hashref = \%hashABC;
Run Code Online (Sandbox Code Playgroud)

这需要我知道哈希名称是'%hashABC'.在上面使用这个例子,我想做某事:

 my $hash_name = 'hashABC'; 
 my $hashref = \%$hash_name; # not possible, hope u get the aim
Run Code Online (Sandbox Code Playgroud)

现在我不再需要知道哈希的名字了.这就是我想要的.

很多人!(perl 5)

perl hash strict

-3
推荐指数
1
解决办法
114
查看次数

标签 统计

perl ×4

hash ×1

strict ×1

symbolic-references ×1

variables ×1