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 parseloop_start() and parseloop(). Instead of loading the whole file into an array the file is read as it is being parsed. parseloop_start() and parseloop() could have been handled within the same function but have kept it seperate for simplicity. parseloop_start() detects start of loops. parseloop() return the loop segments.
  2. setseperator() 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 getlevel_one and getnext_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