- $self->{blocks}->{$tag} ||= $rfid->read_blocks( $tag )->{$tag};
- $self->{afi}->{$tag} ||= $rfid->read_afi( $tag );
+ if ( ! exists $self->{_tags}->{$tag} ) {
+ if ( my $blocks = $rfid->read_blocks($tag) ) {
+ $self->{blocks}->{$tag} = $blocks->{$tag} || die "no $tag in ",dump($blocks);
+ } else {
+ $self->_invalidate_tag( $tag );
+ next;
+ }
+ if ( my $afi = $rfid->read_afi($tag) ) {
+ $self->{_tags}->{$tag}->{afi} = $afi;
+ } else {
+ $self->_invalidate_tag( $tag );
+ next;
+ }
+ }