perl 脚本中的多个 {}
mutiple {} in perl script
我在 perl 脚本中有这个语法,但我不知道它是什么意思:
$string.= "$$info{$id}{free}\t";
.
我对 pearl 很陌生(第一次阅读 perl 脚本),我没有找到任何有用的信息。
$info
是哈希引用。这是指多级数据结构,第一级键由另一个变量$id
设置。您的结构可能如下所示:
my $info = {
1 => {
free => 2,
used => 3,
},
2 => {
free => 1,
used => 0,
},
};
本例中的 $id
将是 1
或 2
。
您可以在 perlreftut 中阅读更多详细信息。
您的代码从数据结构内部获取值并将其附加到变量 $string
后跟一个制表符。它看起来像是在构建一个制表符分隔的文件,类似于 CSV 文件。
根据,$$info{ $id }
也可以写成$info->{ $id }
。 (我不是唯一发现后者更清楚的人。)
$info->{ $id }{ free }
是
的缩写
$info->{ $id }->{ "free" }
这只是将两个散列元素取消引用链接到一个表达式中:
my $anon = $info->{ $id }; $anon->{ "free" }
HASHREF->{ KEY }
用于在给定散列引用和元素键的情况下获取散列元素的值。
这意味着 $info
应该是对哈希的引用。 $info->{ $id }
获取key值为$id
的元素的值。
类似地,$info->{ $id }
/$anon
应该是对哈希的引用。 $anon->{ "free" }
获取键为 free
的元素的值。
例如,
my $info = {
machine01 => {
free => 100,
used => 200,
},
machine02 => {
free => 50,
used => 450,
},
};
my $id = "machine01";
say $info->{ $id }{ free }; # 100
我在 perl 脚本中有这个语法,但我不知道它是什么意思:
$string.= "$$info{$id}{free}\t";
.
我对 pearl 很陌生(第一次阅读 perl 脚本),我没有找到任何有用的信息。
$info
是哈希引用。这是指多级数据结构,第一级键由另一个变量$id
设置。您的结构可能如下所示:
my $info = {
1 => {
free => 2,
used => 3,
},
2 => {
free => 1,
used => 0,
},
};
本例中的 $id
将是 1
或 2
。
您可以在 perlreftut 中阅读更多详细信息。
您的代码从数据结构内部获取值并将其附加到变量 $string
后跟一个制表符。它看起来像是在构建一个制表符分隔的文件,类似于 CSV 文件。
根据$$info{ $id }
也可以写成$info->{ $id }
。 (我不是唯一发现后者更清楚的人。)
$info->{ $id }{ free }
是
的缩写$info->{ $id }->{ "free" }
这只是将两个散列元素取消引用链接到一个表达式中:
my $anon = $info->{ $id }; $anon->{ "free" }
HASHREF->{ KEY }
用于在给定散列引用和元素键的情况下获取散列元素的值。
这意味着 $info
应该是对哈希的引用。 $info->{ $id }
获取key值为$id
的元素的值。
类似地,$info->{ $id }
/$anon
应该是对哈希的引用。 $anon->{ "free" }
获取键为 free
的元素的值。
例如,
my $info = {
machine01 => {
free => 100,
used => 200,
},
machine02 => {
free => 50,
used => 450,
},
};
my $id = "machine01";
say $info->{ $id }{ free }; # 100