#!perl -Tw use Test::More tests => 6; use strict; ## make sure that MARC::Field::subfield() is aware of the context ## in which it is called. In list context it returns *all* subfields ## and in scalar just the first. use_ok( 'MARC::Field' ); my $field = MARC::Field->new( '245', '', '', a=>'foo', b=>'bar', a=>'baz' ); isa_ok( $field, 'MARC::Field' ); my $subfieldA = $field->subfield( 'a' ); is( $subfieldA, 'foo', 'subfield() in scalar context' ); my @subfieldsA = $field->subfield( 'a' ); is( $subfieldsA[0], 'foo', 'subfield() in list context 1' ); is( $subfieldsA[1], 'baz', 'subfield() in list context 2' ); ## should not be able to call subfield on field < 010 $field = MARC::Field->new( '000', 'foobar' ); eval { $field->subfield( 'a' ) }; like( $@, qr/just tags below 010/, 'subfield cannot be called on fields < 010' );