Хранение промежуточных данных в файле на Perl 6 - PullRequest
0 голосов
/ 16 октября 2018

Некоторые из моих программ состоят из двух частей.Сначала они читают большие данные из файлов и преобразуют их, получая Array s, Hash es, Object s и т. Д .;во-вторых, они анализируют эти данные с (всегда разными) пользовательскими условиями.Первая часть остается той же (пока исходные данные не изменены), но иногда каждый раз, когда я запускаю программу, требуется значительное время, и мне обычно приходится запускать ее много раз с одними и теми же исходными данными.Было бы намного лучше иметь две программы - одна из них (однажды) считывает данные и преобразует их, а другая анализирует их (много раз).

Мой вопрос: как лучше всего хранить эти Array s, Hash es и Object s, чтобы первая программа записывала их в файл, а вторая - из нихфайл

1 Ответ

0 голосов
/ 17 октября 2018

Вы можете записать структуру данных в исходный файл Perl 6 и «использовать» ее, тогда она будет предварительно скомпилирована для вас, что потенциально является самым быстрым способом вставить структуру данных в программу Perl 6.

Кроме этого, JSON имеет некоторые заметные ограничения, которых нет в собственных структурах данных Perl 6, такие как разница между целыми числами и числами с плавающей запятой и поддержка Inf, -Inf и NaN.Также нет поддержки ключей в объектах, которые являются «сложными», то есть нет массивов в качестве ключей хеш-функции.

Одним из примеров формата сериализации, который поддерживает большую часть того, что Perl 6 может выдать, является MessagePack.Для него уже есть модули, я только использовал Data :: MessagePack, но вот список: https://modules.perl6.org/search/?q=messagepack

...