That might be something that could go into MARC::Descriptions.... another hash element to indicate punctuation. Then MARC::Field wouldn't have to worry about it :-)
as_string() could check if MARC::Descriptions is available, and if so add any available punctuation. If not, just do it the current way....? I'm willing to tweak up MARC::Descriptions if someone can point me to a "proper punctuation" guide. -David On Wednesday 25 February 2004 09:26 am, Andy Lester wrote: > > I'm using as_string() in Marc::Batch to get 650 fields and mash all the > > subfields together so I can push them into a database. Works great, but > > what I'd really like to do is have fields such as: > > > > "Health Services Canada." > > > > appear as > > > > "Health Services -- Canada." > > Well, it's MARC::Field that is doing the as_string(). > > The dashes between the a, x, y and z is bringing me back to 1991 when I > was working on the punctuation for the CardMaster Plus product for > Follett Software. What I had to do back then was create a big table > that summarized the AACR2 rules as best as possible. It was big mess, > with certain punctuation coming before certain fields, and some after. > For example, in your "Health Services -- Canada", the " -- " isn't after > the _a subfield, but rather that it's before the _x. > > All that was in C, before object-oriented programming (at least in > our shop), so these days we'd probably have a MARC::Field::650 subclass > that overrides the as_string() method. That could get pretty hairy for > all the potential tags running around, especially since 600 and 650 and > a good many other 6xx tags would be similar. > > I'm open to ideas. > > xoa