my @bad_cases = ( { pos => [ '35.21.03.342', '138.34.45.725' ], }, { pos => [ '112', '138.34.45.725' ], }, { pos => [ '35.21.03.342', '95' ], } ); for my $test ( @bad_cases ) { my ( $pos ) = @{$test}{qw( pos )}; eval { $gh->encode( @$pos ); }; like $@, qr/encode\(\) only works on degrees, not dms values/, "@$pos is not encodable and dies with an error"; }