X12::Parser 0.80
-------------------------------------------------------------------------------
1. Some errors related to file handling have been fixed. Versions 0.50
and 0.60 were impacted. get_next_pos_loop, get_next_pos_level_loop,
print_tree were impacted.
The error was as a result of calling readline() on a closed file
handle.
2. The pods have been better formatted.
X12::Parser 0.60
-------------------------------------------------------------------------------
1. Attention: users of previous version
parse_file() has been renamed to parsefile().
parsefile ( file => $file, conf => $conf );
Users using the parse() methods to parse a X12 file should
now use the parsefile() method.
2. Attention: users of previous version
parse() method signature has changed.
new signature is parse ( handle => $handle, conf => $conf );
takes an already open file handle as input.
3. closefile() method is added.
If you do not parse the entire X12 file using get_next_loop()
method, then it is recommended that you call closefile() to
close the file being parsed.
X12::Parser 0.50
-------------------------------------------------------------------------------
1. Many improvements (almost a rewrite) have gone into this version.
Most of the interfaces have been kept the same except some spell corrections.
2. New class X12::Parser::Tree has been added. Earlier the X12::Parser::Cf
class was used to read the cf file as well as maintain the information in
object form. Now they are separated out. X12::Parser::Tree simplifies the
representation of cf file in object format and is a much cleanser approach.
3. X12::Parser::Cf has been rewritten. Old goto statements are gone.
4. X12::Parser module is rewritten. As a result of X12::Parser::Tree, the
X12::Parser module is now much more readable and uses a cleaner approach.
It can handle segment separators of the for ~, ~LF, ~CRLF.
5. New method get_subelement_separator() is added.
6. Spelling correction from seperator to separator is done.
7. Additional test files for the new modules.
8. Added new method parse_file, replacement to parse. The parse()
method in the future will be used for file handles.
X12::Parser 0.09
-------------------------------------------------------------------------------
1. Package Level variables in both the Parser.pm and Cf.pm module have
been removed. This would allow a user to call the parse method on multiple
files using same/different config files.
2. Removed warnings that appeared when a end of the X12 file was reached.
X12::Parser 0.08
-------------------------------------------------------------------------------
A whole lot of changes have gone into this version.
The X12::Parser can now handle files of any size. The earlier versions
of the parser relied on reading the whole X12 file into an array before
parsing. X12::Parser can handle files with multiple ISA segments having
different segment seperators (note it cannot handle different transaction
types within the same file).
1. _parse() method is split into 2 functions _parse_loop_start() and
_parse_loop(). Instead of loading the whole file into an array the file
is read as it is being parsed. _parse_loop_start() and _parse_loop()
could have been handled within the same function but have kept it
seperate for simplicity. _parse_loop_start() detects start of loops.
_parse_loop() return the loop segments.
2. _set_seperator() function is added. This function sets the segment
seperator and element seperator.
3. get_segments() function is removed. Since we no longer maintain the
whole file in an array, it is difficult to gets the segments in a loop
just by giving the line number where the loop starts.
4. reset_pos() function is removed. Not really used and also now that
we parse the file serially there is no need for this function.
5. get_loop_segment() no longer needs $loop as input.
6. Changes to man page section of the module to reflect the above changes.
7. get_next_pos_loop(), and get_next_pos_level_loop() return segment positions
starting with 1. In previous versions 0 would correspond to the first segment.
X12::Parser 0.04
-------------------------------------------------------------------------------
1. Moved _get_level_one and _get_next_level functions from
Parser.pm to Cf.pm (the new functions in Cf.pm are called
get_level_one and get_next_level). This keeps configuration
related functions within the Cf.pm module.
2. Moved $self members/elements to file globals.
3. Changed $c_L to $current_level and $s to $element_seperator
4. Added $segment_seperator. Added get_segment_seperator() and
get_element_seperator() functions. Modified $line_seperator to
$orig_line_seperator
X12::Parser 0.03
-------------------------------------------------------------------------------
1. Fixed problem with parser running out of memory.
Still has issue with very large files.
X12::Parser 0.01 - initial release
-------------------------------------------------------------------------------
1. First release