JPRED-2 Current state of the SVN trank
[jpred.git] / jpred / lib / Sequence.pm
index 6a53af1..ea342d3 100644 (file)
@@ -6,33 +6,34 @@ use Carp;
 use base qw(Root);
 
 sub id {
-       my ($self, $id) = @_;
-       defined $id ?
-               $self->{__PACKAGE__."id"} = $id :
-               return $self->{__PACKAGE__."id"};
+  my ( $self, $id ) = @_;
+  defined $id
+    ? $self->{ __PACKAGE__ . "id" } = $id
+    : return $self->{ __PACKAGE__ . "id" };
 }
 
 sub seq {
-       my ($self, @entries) = @_;
-       if (@entries) { $self->{__PACKAGE__."seq"} = [ @entries ] }
-       else {
-               if (wantarray) {
-                       return defined $self->{__PACKAGE__."seq"} ?
-                               @{ $self->{__PACKAGE__."seq"} } :
-                               ();
-               }
-               else { return $self->{__PACKAGE__."seq"} }
-       }
+  my ( $self, @entries ) = @_;
+  if (@entries) { $self->{ __PACKAGE__ . "seq" } = [@entries] }
+  else {
+    if (wantarray) {
+      return defined $self->{ __PACKAGE__ . "seq" }
+        ? @{ $self->{ __PACKAGE__ . "seq" } }
+        : ();
+    } else {
+      return $self->{ __PACKAGE__ . "seq" };
+    }
+  }
 }
 
 sub length {
-       my ($self) = @_;
-       return scalar @{ [ $self->seq ] };
+  my ($self) = @_;
+  return scalar @{ [ $self->seq ] };
 }
 
 #sub numeric {
 #      my ($self, $set) = @_;
-#      return $set ? 
+#      return $set ?
 #              $self->{__PACKAGE__."numeric"} = $set :
 #              $self->{__PACKAGE__."numeric"};
 #}
@@ -58,38 +59,39 @@ sub length {
 #}
 
 sub sub_seq {
-       my ($self, @segments) = @_;
-
-       my $package = ref $self;
-
-       return $self->seq unless @segments;
-       confess "Passed an uneven number of segments" unless @segments % 2 == 0;
-
-       {
-               my %segments = @segments;
-               # Find out if there are overlapping segments
-               for my $pri (sort keys %segments) {
-                       for my $test (sort keys %segments) {
-                               next if $pri == $test;
-                               croak "Overlapping segments" if $test < $segments{$pri};
-                       }
-               }
-       }
-       
-       my @sections;
-       my ($i, @seq) = (0, $self->seq);
-       do {
-               my ($start, $end) = @segments[$i, $i + 1];
-
-               # Create a new sequence object in the correct package, and put the
-               # segment into it
-               my $new_seq = $package->new(id => $self->id);
-               $new_seq->seq( @seq[ $start .. $end ] );
-               push @sections, $new_seq;
-               $i += 2;
-       } while ($i < @segments);
-
-       return @sections;
+  my ( $self, @segments ) = @_;
+
+  my $package = ref $self;
+
+  return $self->seq unless @segments;
+  confess "Passed an uneven number of segments" unless @segments % 2 == 0;
+
+  {
+    my %segments = @segments;
+
+    # Find out if there are overlapping segments
+    for my $pri ( sort keys %segments ) {
+      for my $test ( sort keys %segments ) {
+        next if $pri == $test;
+        croak "Overlapping segments" if $test < $segments{$pri};
+      }
+    }
+  }
+
+  my @sections;
+  my ( $i, @seq ) = ( 0, $self->seq );
+  do {
+    my ( $start, $end ) = @segments[ $i, $i + 1 ];
+
+    # Create a new sequence object in the correct package, and put the
+    # segment into it
+    my $new_seq = $package->new( id => $self->id );
+    $new_seq->seq( @seq[ $start .. $end ] );
+    push @sections, $new_seq;
+    $i += 2;
+  } while ( $i < @segments );
+
+  return @sections;
 }
 
 1;