我目前正在使用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/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,必须有一些糟糕的东西。但我只想知道我做错了什么。 感谢您帮助那些需要时间回答我的人;)
答案 0 :(得分:2)
getProjectByName
没有返回键/值对的列表(这是初始化%hash
所需的),它返回一个值,这是对a的引用散列:
my $hachage = $tl->getProjectByName('Created_With_API');
您可以使用以下方法访问单个元素$hachage->{id}
。有关详细信息,请参阅perldoc perlreftut
。
答案 1 :(得分:0)
您需要像这样创建初始化变量
int
(注意美元符号,而不是百分比)
你可以通过my $hachage = $tl->getProjectByName('Created_With_API');
您需要此语法,因为$ tl-> getProjectByName返回对哈希的引用,而不是实际哈希。
讨论了差异here。