#!/usr/bin/perl -w

use strict;
use MARC::File::USMARC;
use MARC::File::XML;

$| = 1;


my @fieldDef = (
    {
        name    => 'First Name',
        tag     => '100',
        sfcode  => 'a',
    },
    {
        name    => 'Middle Name',
        tag     => '100',
        sfcode  => 'b',
    },
    {
        name    => 'Last Name',
        tag     => '100',
        sfcode  => 'c',
    },
    {
        name    => 'Gender',
        tag     => '100',
        sfcode  => 'f',
    },
    {
        name    => 'Date of Birth',
        tag     => '100',
        sfcode  => 'k',
    },
    {
        name    => 'Mailing Address',
        tag     => '110',
        sfcode  => 'a',
    },
    {
        name    => 'City',
        tag     => '110',
        sfcode  => 'b',
    },
    {
        name    => 'State or Province',
        tag     => '110',
        sfcode  => 'c',
    },
    {
        name    => 'Country',
        tag     => '110',
        sfcode  => 'd',
    },
    {
        name    => 'Zip/Postal Code',
        tag     => '110',
        sfcode  => 'e',
    },
    {
        name    => "Student's Telephone Number",
        tag     => '110',
        sfcode  => 'k',
    },
    {
        name    => "Student's Fax Number",
        tag     => '110',
        sfcode  => 'l',
    },
    {
        name    => "Student's Email Address",
        tag     => '110',
        sfcode  => 'm',
    },
    {
        name    => "Parents' Phone Number",
        tag     => '120',
        sfcode  => 'a',
    },
    {
        name    => "Parents' Fax Number",
        tag     => '120',
        sfcode  => 'b',
    },
    {
        name    => "Parents' Email Address",
        tag     => '120',
        sfcode  => 'c',
    },
    {
        name    => 'Building Code/Number',
        tag     => '852',
        sfcode  => 'a',
    },
    {
        name    => 'Homeroom',
        tag     => '852',
        sfcode  => 'b',
    },
    {
        name    => 'Teacher',
        tag     => '852',
        sfcode  => 'c',
    },
    {
        name    => 'Grade',
        tag     => '852',
        sfcode  => 'g',
    },
    {
        name    => 'Year of Graduation',
        tag     => '852',
        sfcode  => 'h',
    },
    {
        name    => 'Parent or Guardian Last Name',
        tag     => '852',
        sfcode  => 'l',
    },
    {
        name    => 'Parent or Guardian First Name',
        tag     => '852',
        sfcode  => 'm',
    },
    {
        name    => "Student's ID Number",
        tag     => '852',
        sfcode  => 'p',
    },
    {
        name    => 'Password',
        tag     => '852',
        sfcode  => 'q',
    },
);
my $line = '';
foreach my $fd (@fieldDef) {
    $line .= $fd->{'name'} . ',';
}
$line =~ s/,$//;
print "$line\n";

my $sfval;
foreach my $file (@ARGV) {
    my $marcFile = MARC::File::USMARC->in($file);
    while (my $rec = $marcFile->next) {
        $line = '';
        foreach my $fd (@fieldDef) {
            $sfval = $rec->subfield($fd->{'tag'}, $fd->{'sfcode'});
            ($sfval) || ($sfval = '');
            $sfval = '"' . $sfval . '"' if ($sfval =~ m/,/);
            $line .= $sfval . ',';
        }
        $line =~ s/,$//;
        print "$line\n";
    }
    $marcFile->close;
}
