On May 1, 2006, at 4:41 PM, Leif Andersson wrote:

+1

"count" can possibly be complemented or replaced with occurrence as suggested.
It'd be nice to be able to denote last occurrence [-1].
And I suppose the indexing should be based on ordinary perl subscript indexing - i.e. governed by the value of special variable $[

$field->delete_subfield( code => $code,      # of course
occur => [0,2,3], # "occur" or "pos" or whatever... match => qr/pat/, # doesn't need to be repeatable
                       );

I actually like 'pos' better than 'occur' -- but alas

        $field->delete_subfield(pos => 2);

won't work because 'pos' is a perl keyword--which is why I like using it I suppose :-) How about:

        $field->delete_subfield(position => 2);

A bit more wordy I guess, but I still like it better than occur. Nice tip on the use of $[ by the way! I also like Tim's suggestion to allow 'code' to take multiple values too:

        $field->delete_subfield(code => ['a','b','c'])

So if you check out the CVS you should find this implemented. If you are interested in adding any tests or documentation let me know and I'll add you as a sf.net developer.

The current documentation for the new method reads like this:

--

       delete_subfield() allows you to remove subfields from a field:

           # delete any subfield a in the field
           $field->delete_subfield(code => 'a');

           # delete any subfield a or u in the field
           $field->delete_subfield(code => ['a', 'u']);

If you want to only delete subfields at a particular position you can
       use the position parameter:

           # delete subfield u at the first position
           $field->delete_subfield(code => 'u', position => 0);

           # delete subfield u at first or second position
           $field->delete_subfield(code => 'u', position => [0,1]);

You can specify a regex to for only deleting subfields that match:

          # delete any subfield u that matches zombo.com
          $field->delete_subfield(code => 'u', match => qr/zombo.com/);

--

Sound ok?

//Ed

Reply via email to