我有一个@array数组引用数组.如果我使用的范围内,通过操作者的3打印元件1 @array,print @array[1..3],perl的打印的元件1至3的阵列的引用.
为什么当我尝试取消引用索引在1和3之间的数组引用时@{@array[1..3]},perl只取消引用并打印出范围运算符中索引的最后一个元素?
有没有办法在解除引用数组时使用范围运算符?
#!/bin/perl
use strict;
use warnings;
my @array = ();
foreach my $i (0..10) {
push @array, [rand(1000), int(rand(3))];
}
foreach my $i (@array) {
print "@$i\n";
}
print "\n\n================\n\n";
print @{@array[1..3]};
print "\n\n================\n\n";
Run Code Online (Sandbox Code Playgroud) 我知道在perl中你可以通过简单地执行以下操作来插入标量:
"This is my $string"
Run Code Online (Sandbox Code Playgroud)
但是,我想知道是否有一种方法可以插入实际的perl代码进行评估?使用ruby字符串可以看到我想要的想法:
"5 + 4 = #{5 + 4}"
Run Code Online (Sandbox Code Playgroud)
它将评估两者之间的任何内容{}.
有谁知道在perl中这样做的方法?谢谢!
如果我有一个变量,$bar它等于字符串"foo"并且$foo等于0xdead,那么$foo当我只有变量名的字符串时,如何得到值?
本质上,我想在全局命名空间上执行一种指针间接寻址或在全局命名空间上执行哈希查找.
以下不起作用:
perl -e 'my $foo=0xdead; my $bar ="foo"; print ${$bar}."\n";'
Run Code Online (Sandbox Code Playgroud)
它只打印换行符.