my $format1 = sub { ## Subroutine that reads records with format 1 } my $format2 = sub { ## Subroutine that reads records with format 2 } tie my @dataf1, 'Tie::File::AnyData', $file_format1, code => $format1; ## Creates get_next_rec and redefines _read_record tie my @dataf2, 'Tie::File::AnyData', $file_format2, code => $format2; ## Re-defines get_next_rec!!