Как я загружаю файл в хеш Perl?

После включения журнала проблема заключается в keyset does not exist. Приложение не имеет разрешения на чтение закрытого ключа в сертификате. После добавления разрешения проблема решена. Начальная invalid_grant вводит в заблуждение ...

11
задан 2 revsIan Dexter 24 October 2008 в 22:21
поделиться

3 ответа

Вот:

my %hash;
while (<FILE>)
{
   chomp;
   my ($key, $val) = split /=/;
   $hash{$key} .= exists $hash{$key} ? ",$val" : $val;
}

Это идет посредством каждого разделения строки на '=' знак и или добавляет запись или добавляет к существующей записи в хеш-таблице.

22
ответ дан 3 December 2019 в 03:54
поделиться

Можно ли добавить некоторый код к функции карты, чтобы проверить на существование записи хеша и добавить новое значение?

Я не выполнил в Perl некоторое время, но когда я сделал что-то вроде этого в прошлом, что я считал файл в линию за линией (в то время как $inputLine = <ФАЙЛ>), и использовал разделение на '=' для загрузки хеша дополнительными проверками, чтобы видеть, имел ли хеш уже тот ключ, добавляя, если запись уже существовала.

-1
ответ дан 3 December 2019 в 03:54
поделиться

Если Вы управляете файлом данных, рассматриваете переключение от пользовательского формата до чего-то как 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'
        };
5
ответ дан 3 December 2019 в 03:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: