/usr/lib/x86_64-linux-gnu/perl5/5.24/TFBS/_Iterator.pm is in libtfbs-perl 0.7.0+dfsg-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | package TFBS::_Iterator;
use vars '@ISA';
use strict;
use Carp;
@ISA = qw(Bio::Root::Root);
#############################################################
# PUBLIC METHODS
#############################################################
sub new {
my ($caller, $arrayref, $sort_by, $reverse) = @_;
my $class = ref $caller || $caller;
my $self;
if ($arrayref) {
$self = bless { _orig_array_ref => [ @$arrayref ],
_iterator_array_ref => [ @$arrayref ],
_sort_by => ($sort_by || undef),
_reverse => ($reverse || 0)
},
$class;
}
else {
croak("No valid array ref for Iterator of ".
(ref($class) || $class)." provided:");
}
$self->_sort() if $sort_by;
$self->_reverse() if $reverse;
return $self;
}
sub current {
}
sub reset {
my ($self) = @_;
@{$self->{_iterator_array_ref}} = @{$self->{_orig_array_ref}};
$self->_sort() if $self->{'_sort_by'};
$self->_reverse() if $self->{'reverse'};
return $self;
}
sub next {
my $self = shift;
return shift @{$self->{_iterator_array_ref}};
}
#################################################################
# PRIVATE METHODS
#################################################################
sub _sort {
my ($self, $sort_by) = @_;
$self->throw("Generic iterator cannot sort ".ref($self).
" object by '$sort_by'.");
}
sub _reverse {
my $self = shift;
$self->{'_iterator_array_ref'} =
[ reverse @{ $self->{'_iterator_array_ref'} } ];
}
|