相关疑难解决方法(0)

为什么perl仅在使用范围运算符时取消引用最后一个索引?

我有一个@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

6
推荐指数
1
解决办法
133
查看次数

perl插值代码

我知道在perl中你可以通过简单地执行以下操作来插入标量:

"This is my $string"
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否有一种方法可以插入实际的perl代码进行评估?使用ruby字符串可以看到我想要的想法:

"5 + 4 = #{5 + 4}"
Run Code Online (Sandbox Code Playgroud)

它将评估两者之间的任何内容{}.

有谁知道在perl中这样做的方法?谢谢!

string perl interpolation

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

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

如果我有一个变量,$bar它等于字符串"foo"并且$foo等于0xdead,那么$foo当我只有变量名的字符串时,如何得到值?

本质上,我想在全局命名空间上执行一种指针间接寻址或在全局命名空间上执行哈希查找.

以下不起作用:

perl -e 'my $foo=0xdead; my $bar ="foo"; print ${$bar}."\n";' 
Run Code Online (Sandbox Code Playgroud)

它只打印换行符.

perl symbolic-references

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

标签 统计

perl ×3

interpolation ×1

string ×1

symbolic-references ×1