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