# gb.pl   07.07.21
use strict;
use IO::File;

my(%t,$f_ref,@fld);

# Read raw data
open(FH,"shipGB1.txt") or die "Can't open the file shipGB1.txt\n";
while(<FH>){
    @fld = split;
    next until $fld[1];
    $$f_ref{line1} = $_;
    if (/^GB/ or /^SY/ or /^DL/) {
        $$f_ref{f1} = 'gb.txt';
        ($f_ref) = write_file($f_ref);
    } elsif (/^NF/ ) {
        $$f_ref{f1} = 'nf.txt';
        ($f_ref) = write_file($f_ref);
    } elsif (/^ASTM/ or /^ANSI/ or /^ASME/ or /^UL/ ) {
        $$f_ref{f1} = 'astm.txt';
        ($f_ref) = write_file($f_ref);
    } elsif (/^EN/ or /^prEN/) {
        $$f_ref{f1} = 'en.txt';
        ($f_ref) = write_file($f_ref);
    } elsif (/^BS/ ) {
        $$f_ref{f1} = 'bs.txt';
        ($f_ref) = write_file($f_ref);
    } elsif (/^DIN/ ) {
        $$f_ref{f1} = 'din.txt';
        ($f_ref) = write_file($f_ref);
    } elsif (/^IEC/ or /^PD/) {
        $$f_ref{f1} = 'iec.txt';
        ($f_ref) = write_file($f_ref);
    } elsif (/^ISO/ ) {
        $$f_ref{f1} = 'iso.txt';
        ($f_ref) = write_file($f_ref);
    } elsif (/^JIS/ ) {
        $$f_ref{f1} = 'jis.txt';
        ($f_ref) = write_file($f_ref);
    } else {
        $$f_ref{f1} = 'others.txt';
        ($f_ref) = write_file($f_ref);
    }
}
close(FH);

sub write_file {
    my($f_ref) = @_;
    my($fh);
    $fh = new IO::File ">> ./doc/$$f_ref{f1}";
    if (defined $fh) {
        print $fh $$f_ref{line1};
        $fh->close;
    }
    return($f_ref);
}

__END__