On Monday, March 03, 2008 3:16 PM, Michael Doran wrote:
>I looked through the MARC::Record CHANGES file [3].  Although there are
some enhancements/fixes regarding the use of UTF-8, I don't see anything
that explicitely states that more current versions of MARC::Record now
compute the record length in bytes.  It seems like that would be a good
thing.<

I thought this was done starting with MARC::Record v2.0 RC1, based on a
posting from Ed Summers, Fri, 20 May 2005:
<http://www.mail-archive.com/perl4lib%40perl.org/msg00709.html> 

Looking at MARC::File::USMARC, an internal sub, _build_tag_directory(),
includes a line "my $len = bytes::length( $str );" and the total record
length appears to be calculated from:
$dataend += $len;
#...
my $baseaddress =
                LEADER_LEN +    # better be 24
                ( @directory * DIRECTORY_ENTRY_LEN ) +
                                # all the directory entries
                1;              # end-of-field marker

my $total =
                $baseaddress +  # stuff before first field
                $dataend +      # Length of the fields
                1;              # End-of-record marker


I hope this helps,

Bryan Baldus
[EMAIL PROTECTED]
[EMAIL PROTECTED]
http://home.inwave.com/eija
 

Reply via email to