On 8 Mar, E.Horn wrote:
> Hello!
> I want to read this file into an array.
> How can i just get 4, 5, 6,7,8 into an array?
> And later, how can i get the contents out of this array?
> 1) 2) 3) 4) 5) 6)
> 7) 8) 9) 10) 11)
> ATOM 2909 CG1 VAL B 183 1.130 28.458 104.360 1.00
> 23.04 C
> ATOM 2910 CG2 VAL B 183 0.996 29.769 102.236 1.00
> 24.61 C
> ATOM 2911 N THR B 184 3.313 31.739 103.453 1.00
> 25.98 N
> ATOM 2912 CA THR B 184 3.261 33.012 104.149 1.00
> 29.31 C
> ATOM 2913 C THR B 184 1.911 33.642 103.859 1.00
> 29.26 C
> ATOM 2914 O THR B 184 1.442 33.626 102.720 1.00
> 28.75 O
> regards
#! /usr/bin/perl
use strict;
use warnings;
# Each element in an interpolated array
# is followed by a trailing newline
$" = "\n";
my $file = '/path/to/file';
open(FH, $file) or die "Couldn't open $file: $!\n";
while (my $line = <FH>) {
# Remove all whitespaces (and trailing newline)
# and insert remaining items in @arr
my @arr = split /\s+/, $line;
# Remove first of first three and last two elements
splice(@arr, 0, 3) && splice(@arr, -2, $#arr);
# Separate 'VAL B' into array
my @tmp = splice(@arr, 0, 2);
my $tmp;
# @tmp = qw(VAL B) becomes string 'VAL B'
$tmp .= "$_ " for @tmp;
# Remove trailing space and insert at front of @arr
chop($tmp) && unshift(@arr, $tmp);
# Print each element in @arr
print "@arr\n\n";
}
close(FH);
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>