YAML VERSION: 0.68
YAML::XS VERSION: 0.32
YAML::Syck VERSION: 1.07
Поддержка utf-8 реализована во всех этих модулях (у YAML::Syck - включается опционально, как и многое другое). Но есть нюансы: входные данные должны быть последовательностью байтов, а не Perl строкой (подразумевается is_utf8 флаг). На выходe YAML и YAML::XS дают YAML в виде последовательности байтов, а YAML::Syck - Perl строки. YAML::Syck может принимать YAML в виде Perl строки.
Комментарии поддерживаются в YAML::XS и YAML::Syck, а в модуле YAML нет.
Ссылки на другие элементы поддерживаются всеми модулями, а слияния - ни одним из них.
Поддержка тегов и типов данных оставляет желать лучшего, так что на практике их использовать затруднительно. Модуль YAML::Syck имеет поддержку binary типа, но только для чтения.
Производительность YAML::XS и YAML::Syck примерно одинакова.
Если сравнивать YAML и JSON, то JSON в первую очередь стоит использовать для обмена информацией между программами, а YAML - для записи и редактирования информации человеком, тем более, что YAML более нагляден, чем JSON.
P.S.
Внимание! В текущей версии YAML::XS (0.32) имеется утечка памяти.
Комментариев нет:
Отправить комментарий