相关疑难解决方法(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在字符串插值期间评估$ {...}中的代码?

为什么以下代码段可以正常工作?使用这个可能有什么邪恶?但是说真的,有什么理由,根本${}得到的代码被评估然后用作标量参考?

use strict;
no strict 'refs';

our $message = "Hello world!";
print "${ lc 'MESSAGE' }\n";
Run Code Online (Sandbox Code Playgroud)

perl symbolic-references

6
推荐指数
3
解决办法
3725
查看次数

Perl:创建字母数字序列变量

我想寻求帮助来创建一个 Perl 代码,我可以在其中创建字母数字顺序变量(可以用作数组、散列或任何其他类型的变量)。

for ( my $x = 1; $x <= 10; $x++ ){
  my $var$x = "" *# to create empty variable with the word 'var' + the integer from x (var1, var2, var3, ...)* 
  for ( my $y = 1; $y < 10; $y++){
    my $var$x = $var$x.''.$x.''.$y *# to store/concatenate the values from $x+$y into var$x*
  }
  print "$var$x"
}
Run Code Online (Sandbox Code Playgroud)

应该打印什么:

var1 = 11, 12, 13, 14, 15, 16, 17, 18, 19
var2 = 21, 22, 23, …
Run Code Online (Sandbox Code Playgroud)

variables perl alphanumeric

-2
推荐指数
1
解决办法
162
查看次数