The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

SAS::TRX::CY - Convert a TRX library into a YAML description and CSV data.

SYNOPSIS

  use SAS::TRX::CY;

  my $cy = new SAS::TRX::CY DATASET=>'trx.csv', STRUCT=>'trx.yml';
  $cy->load('source.trx');

DESCRIPTION

Parses 'source.trx' and splits onto DATASET and STRUCT files. Make sure you have write access permission to the destination files.

YAML defines data types in TRX terms: --- TABLE_NAME: - LABEL: column1 label NAME: column1 name TYPE: CHAR or NUMBER - LABEL: column2 label NAME: column2 name TYPE: CHAR or NUMBER

To determine needed column length and distinguish INTEGER and FLOAT, use SAS::TRX::MySQL or SAS::TRX::SQLite.

Each line in CSV file ends with '+' to describe the structure in the following section or '-' to indicate actual data rows. The '+' line contains the table name followed by column names.

Thus the CSV parser may be like this:

    my ($tbl, @cols, %data);
    while (<>) {
        chomp;
        my $tag = chop;
        if ($tag eq '+') {
            ($tbl, @cols) = split;
            next;
        } elsif ($tag eq '-') {
            @data{@cols} = split;
            next;
        } else {
            die 'Format violation';
        }
    }

EXPORT

Nothing is exported.

SEE ALSO

    SAS::TRX for the base class
    SAS::TRX::MySQL, SAS::TRX::SQLite for data types

AUTHOR

Alexander Kuznetsov, <acca (at) cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2009 by Alexander Kuznetsov

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.