On Jun 8, 2012, at 9:16 AM, lina wrote:

> Hi,
> 
> Here is the to-be-processed file,
> 
> $ more try
>  #  RESIDUE AA STRUCTURE BP1 BP2  ACC     N-H-->O    O-->H-N
> N-H-->O    O-->H-N    TCO  KAPPA ALPHA  PHI   PSI    X-CA   Y-CA
> Z-CA
>    1  174   V              0   0    0      0, 0.0     2,-0.3     0,
> 0.0     0, 0.0   0.000 360.0 360.0 360.0 137.8   47.8   27.7   76.9
>    2  175   H        -     0   0    0      2,-0.0     2,-0.3     0,
> 0.0     0, 0.0  -1.000 360.0-153.6-152.0 146.1   50.8   25.5   78.2
> 
> I wish to print the value under the BP1, namely
> 
> 0
> 0
> 
> but no matter count from left or right, the field number is uncertain,
> 
> Thanks ahead for your suggestions,

Your data lines appear to have a fixed format, with fields separated by space 
characters. If this is true, then you can use either the unpack or substr 
functions to access a fixed set of characters from each record;

#!/usr/local/bin/perl
use strict;
use warnings;

while(<DATA>) {
  next if /^\s*#/;
  my( $bp1 ) = unpack('x23 A6');
  print "bp1 = '$bp1'\n";
}

__DATA__
  #  RESIDUE AA STRUCTURE BP1 BP2  ACC     N-H-->O    O-->H-N    N-H-->O    
O-->H-N    TCO  KAPPA ALPHA  PHI   PSI    X-CA   Y-CA   Z-CA 
    1  174   V              0   0    0      0, 0.0     2,-0.3     0, 0.0     0, 
0.0   0.000 360.0 360.0 360.0 137.8   47.8   27.7   76.9
    2  175   H        -     0   0    0      2,-0.0     2,-0.3     0, 0.0     0, 
0.0  -1.000 360.0-153.6-152.0 146.1   50.8   25.5   78.2

This line would also work:

  my $bp1 = substr($_,23,6);



--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to