访问哈希值的第一部分?

时间:2016-03-01 16:45:34

标签: perl hash

我有一个如下所示的哈希:

my %parameters= (
RamSize => "1000"
PageSize => "200, 200"
SysClock => "1"
);

我需要访问此哈希的PageSize id,但我需要分别以200和200而不是" 200,200"来访问它。我无法改变这是如何输入的,那么以200的最简单的方式访问它?

2 个答案:

答案 0 :(得分:3)

你写的东西不是有效的Perl。您的哈希可能看起来像这样

my %parameters = (
    RamSize  => "1000",
    PageSize => "200, 200",
    SysClock => "1",
);

元素$parameters{PageSize}是一个简单的字符串,您必须显式处理它才能从中提取子字符串。

目前还不清楚在一般情况下您可能需要什么,但如果您只是希望字符串中出现的所有整数值,则全局正则表达式匹配将为您执行此操作。喜欢这个

my ($ps1, $ps2) = $parameters{PageSize} =~ /\d+/g;

say $ps1;
say $ps2;

输出

200
200

答案 1 :(得分:1)

你发布的内容没有意义。我假设您确实拥有以下内容:

my %parameters = (
    RamSize  => "1000",
    PageSize => "200, 200",
    SysClock => "1",
);

如果是这样,您可以使用以下内容:

my ($x, $y) = split /\s*,\s*/, $parameters{PageSize};