On  Monday, December 22, 2008 1:18 PM, Monday, December 22, 2008 1:18 PM wrote:
>However, if there is no language code, I want to assign the code "ENG".  The 
>problem is my test for an empty language code is not working.  I've tried a 
>few variants of the regex, but come up empty handed.  When I print out the 
>empty language code it is just three blank spaces, but my regex isn't picking 
>that up.  Any ideas would be greatly appreciated.<

In MARC::Errorchecks, sub validate008, I use:

    #get the values of the all-format positions
    my %field008hash = (
    dateentered => substr($field008,0,6),
    datetype => substr($field008,6,1),
    date1 => substr($field008,7,4),
    date2 => substr($field008,11,4),
    pubctry => substr($field008,15,3),
    ### format specific 18-34 ###
    langcode => substr($field008,35,3),
    modrec => substr($field008,38,1),
    catsource => substr($field008,39,1)
    );

#...

    #report new 'zxx' code when '   ' (3-blanks) is existing code
    if ($field008hash{langcode} eq '   ') {
        push @warningstoreturn, ("008: Bytes 35-37, Language 
($field008hash{langcode}) must now be coded 'zxx' for No linguistic content.");
    } #if 008/35-37 is 3-blanks

#########################################

I hope this helps,

Bryan Baldus
bryan.bal...@quality-books.com
eij...@cpan.org
http://home.inwave.com/eija


Reply via email to