Таким образом, в настоящее время я работаю над проектом perl, в котором мне нужно передать массив (содержащий идентификаторы для отклонения), хранящийся в виде ссылки на хэш, в другую подпрограмму, где я получаю доступ к массиву, использую его содержимое в файле json, который я создаю. В настоящее время я хочу, чтобы массив хранился как ссылка в моем основном хэше;«$ self», который я подбрасываю между подпрограммами для доступа к токену, который я использую для получения аутентификации. для сайта, над которым я работаю:
#!/usr/bin/perl -I/usr/local/lib/perl
#all appropriate libaries used
#I use this to gen. my generic user agent, which is passed around.
my $hub = website->new( email=>'XXXX', password=>'XXXX');
# I use this to get the authorisation token, which is stored as a hash ref for accessing where needed (sub not shown)
my $token = $hub->auth();
#this is where I get the array of ids I want to reject
my @reject_array = $hub->approvelist();
# this is where the issue is happening as the array hash ref keeps just giving a total number of id's
$hub->rejectcontacts;
sub approvelist{
my $self = shift;
#$self useragent and the token gets used in a http request to get json
.
#json code here to strip out the id for each contact in a for loop, which I then push into the array below \/
.
.
.
push @idlist, $id;
.
.
.
#this is where I try to store my array as a hash
$self->{reject_array} = @idlist;
ref in $self
return @idlist;
}
sub rejectcontacts{
#I do the same trick to try getting the useragent obj, the auth. token AND now the array
my $self = shift;
.
#code used for the HTTP request here...
.
.
my $content = encode_json({
reason=>"Prospect title",
itemIds=>[@{$self->{reject_array}}], #this is where the problem is
});
Проблема в том, что когда я пытаюсь получить доступ к массиву из хеш-ссылки, мне кажется, что я могу только получить скалярное число от числа элементов в массиве, а не каждое из фактического содержимого в массиве.
Я проверил, что массив определен и сам хэш ref определен, но когда дело доходит до попытки доступа к массиву в моей подпункте "rejectcontacts"выше, все, что я получаю, это просто число идентификаторов в нем - 68 (число 68 помещается в файл json, который я пытаюсь записать, а затем, очевидно, не работает).
Любая помощь в этомс благодарностью - я не смог найти решение в другом месте.