После включения журнала проблема заключается в keyset does not exist
. Приложение не имеет разрешения на чтение закрытого ключа в сертификате. После добавления разрешения проблема решена. Начальная invalid_grant
вводит в заблуждение ...
Вот:
my %hash;
while (<FILE>)
{
chomp;
my ($key, $val) = split /=/;
$hash{$key} .= exists $hash{$key} ? ",$val" : $val;
}
Это идет посредством каждого разделения строки на '=' знак и или добавляет запись или добавляет к существующей записи в хеш-таблице.
Можно ли добавить некоторый код к функции карты, чтобы проверить на существование записи хеша и добавить новое значение?
Я не выполнил в Perl некоторое время, но когда я сделал что-то вроде этого в прошлом, что я считал файл в линию за линией (в то время как $inputLine = <ФАЙЛ>), и использовал разделение на '=' для загрузки хеша дополнительными проверками, чтобы видеть, имел ли хеш уже тот ключ, добавляя, если запись уже существовала.
Если Вы управляете файлом данных, рассматриваете переключение от пользовательского формата до чего-то как YAML. Это дает Вам много питания из поля, не имея необходимость взламывать Ваш пользовательский формат все больше. В частности, несколько ключей, создающих список, неочевидны. Способ YAML сделать его намного более ясен.
name: Wally Jones
department: [foo, bar]
location: [baz, biff]
Обратите внимание также, что YAML позволяет Вам ваять пары ключ/значение, таким образом, они выстраиваются в линию для более легкого чтения.
И код для парсинга его сделан модулем, YAML:: причем XS является лучшим из набора.
use File::Slurp;
use YAML::XS;
use Data::Dumper;
print Dumper Load scalar read_file(shift);
И структура данных похожа так:
$VAR1 = {
'department' => [
'foo',
'bar'
],
'location' => [
'baz',
'biff'
],
'name' => 'Wally Jones'
};