显示哈希{Perl}的内容
我目前正在使用一个API,我编写了一个简短的脚本来获取我创建的项目的详细信息。我能够使用Data::Dumper成功地显示整个内容,但我无法显示特定元素或将其分配给变量。 以下是我的简短代码:显示哈希{Perl}的内容,perl,hash,Perl,Hash,我目前正在使用一个API,我编写了一个简短的脚本来获取我创建的项目的详细信息。我能够使用Data::Dumper成功地显示整个内容,但我无法显示特定元素或将其分配给变量。 以下是我的简短代码: # !/usr/bin/perl use strict; use warnings; use TestLink::API; use Data::Dumper; my $tl=TestLink::API->new('http://127.0.0.1/testlink-1.9.16/lib/api/xm
# !/usr/bin/perl
use strict;
use warnings;
use TestLink::API;
use Data::Dumper;
my $tl=TestLink::API->new('http://127.0.0.1/testlink-1.9.16/lib/api/xmlrpc/v1/xmlrpc.php', 'a64aaa61db4e9f65d4e52745b86e3d8f');
print Dumper($tl->getProjectByName('Created_With_API'));
my %hachage = $tl->getProjectByName('Created_With_API');
此代码显示我的信息,即:
$VAR1 = {
'prefix' => 'CWAPI',
'notes' => 'res ipsa loquiter',
'opt' => {
'inventoryEnabled' => '1',
'testPriorityEnabled' => '1',
'automationEnabled' => '1',
'requirementsEnabled' => '1'
},
'options' => 'O:8:"stdClass":4:{s:19:"requirementsEnabled";i:1;s:19:"testPriorityEnabled";i:1;s:17:"automationEnabled";i:1;s:16:"inventoryEnabled";i:1;}',
'color' => '',
'option_priority' => '0',
'issue_tracker_enabled' => '0',
'id' => '14',
'is_public' => '1',
'option_reqs' => '0',
'type' => 'project',
'api_key' => '9bc99494a418140a1a625257da91d9f855b452c05f498ac2db94cbbbb331db58',
'name' => 'Created_With_API',
'option_automation' => '0',
'reqmgr_integration_enabled' => '0',
'tc_counter' => '0',
'active' => '1'
};
但是当我写的时候,我不能显示一个特定的元素
print "$hachage{id}";
我犯了一个错误。我知道,我可能做错了什么,我几天前就开始学习Perl来实现这个API,肯定有很多东西。但我只是想知道我做错了什么。
感谢你对那些愿意花时间回答我的人的帮助 您需要创建并初始化变量,如下所示 my$hachage=$tl->getProjectByName'Created_With_API' 注意美元符号,而不是百分比 您可以通过执行print$hachage->{'id'}来获得所需内容 您需要这种语法,因为$tl->getProjectByName返回对散列的引用,而不是实际的散列 差异已在讨论中。getProjectByName不返回初始化%哈希所需的键/值对列表,它返回单个值,该值是对哈希的引用:
my $hachage = $tl->getProjectByName('Created_With_API');
您可以使用例如$hachage->{id}访问单个元素。有关更多信息,请参阅。谢谢,这就是它不起作用的原因,API文档中说返回所需的project def哈希,否则为false。由于我不太了解Perl,我认为它返回的是哈希,而不是它的引用。好的,谢谢,我错了;我几天前开始学习Perl。。。此时,您应该专注于第三方API,而不是深入研究第三方API。