NAME TLV::Parser - A module for parsing TLV strings SYNOPSIS use TLV::Parser; $tlv = TLV::Parser->new( { tag_aref => ['80', '5F', '9F01'], l_len => 2, } ); $tlv->parse($tlv_string); # Alternative: no l_len is passed in. The default l_len is 2. $tlv = TLV::Parser->new( { tag_aref => ['80', '5F', '9F01'], } ); $tlv->parse($tlv_string); DESCRIPTION The TLV::Parser module, provides a simple interface for parsing TLV (Tag-Length-Value) or (Identifier-Length-Contents) strings. It takes in a hashref as the input: tag_aref points to the reference to the array of tags, and l_len is the number of bytes defined for the length segment in TLV. METHODS new(\%args) Creates a new TLV::Parser object with the hashref as the input. tag_aref, which points to the array of tags, is mandatory. l_len, which is the number of bytes defined for length segment, is optional with default value of 2. Parsing TLV string can be done by continuous regex or by cut the 'tag' segment from tlv string and compare it against the defined tags. This module is using cut and compary method, so it stores all the passed in tags into a hash, also store the set of the length of the tags in a hash. parse($tlv_string) Parses the specified TLV string and store the result in the object itself. If the TLV string cannot be parsed completely, it will store the remaining segment and store error message 'parsing incomplete' 'result' => '... ...', 'remain' => '... ...', 'error' => 'parsing incomplete', After parsering, TLV (tag, value) pairs hash are pointed by 'result' in the object. AUTHOR Guangsheng He (何光胜) COPYRIGHT AND LICENSE Copyright (C) 2024 by Guangsheng He (何光胜) This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.