【发布时间】:2018-06-17 15:56:18
【问题描述】:
我试图在每个循环的一段时间内定义一个内联哈希,我的程序没有抛出任何错误,但也没有执行打印语句。是否可以定义如下的内联哈希:
while (my (key, value) = each %{ (apple => "red", orange => "orange", grape => "purple")}) {
print "something";
}
或者,如果我直接在每个语句中调用一个返回哈希值的 sub,如下所示:
sub returnsHash {
my %fruits = (
apple => "red",
orange => "orange",
grape => "purple",
);
return %fruits;
}
while (my (key, value) = each %{ returnsHash() }) {
print "something";
}
【问题讨论】:
-
returnsHash的输出是什么? -
它可以是任何返回哈希的东西,编辑了我的问题
-
始终使用
use strict; use warnings qw( all );!!!它会识别出您所询问的问题。 -
Re "它可以是任何返回散列的东西,编辑了我的问题",你问题中的
returnHash不返回散列;它返回 6 个字符串。事实上,不可能返回一个哈希值。 sub 只能返回标量。 sub 可以返回对哈希的引用,但这不是您所说或所说的。
标签: perl