On 15/12/2011 15:47, Chris Stinemetz wrote: > > I'm getting a bit closer. There a couple roadblocks I am up against. > > I am able to split the lines by white space, but for some reason the > program isn't capturing the first lines to the @fieldValue array after > the @headerNames array. > > Once I get all the lines to go into the array correctly I would like > to combine the @headerNames and @fieldValue arrays. The way I am doing > it now only appends the later. > > I would like the combination to be the below for each elements in the > two arrays. > > any help is greatly appreciated, > > Chris > > csno=1 > rfpi=1 > header_1=5.5 > header_2=5.5 > header_3=5.5 > header_4=5.5 > header_5=5.5 > header_6=5.5 > header_7=5.5 > header_8=5.5 > header_9=5.5 > > > > #!/usr/bin/perl > use warnings; > use strict; > use Data::Dumper; > > my $header; > my @headerNames; > my $field; > my @fieldValue; > my @apxScript; > > while (my $line =<DATA>) { > if($line =~ m|(.*_.*\n)|){ > $header = $1; > @headerNames = split(" ",$header); > } > > if($line !~ m|.*_.*\n|){ > @fieldValue = split(" ",$line); > print "$fieldValue[0]\n"; > } > } > > my @apxScript=(@headerNames, @fieldValue); > print Dumper \@headerNames; > print Dumper \@fieldValue; > print Dumper \@apxScript; > > > __DATA__ > csno rfpi header_1 header_2 header_3 header_4 header_5 header_6 > header_7 header_8 header_9 > 1 1 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 > 2 2 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 > 3 3 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 > 4 1 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 > 5 2 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 > 6 3 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 > 7 1 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 > 8 2 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 > 9 3 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 > 10 1 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 > 11 2 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 > 12 3 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5
Hey Chris Your program reads lines from DATA and splits every line that doesn't contain an underscore into @fieldValue. Every line of data overwrites the contents of the array, so the end result is that @fieldValue holds the data from the last line of data. What are you hoping for? If you want to retain the /first/ line of data instead of the last then you need only to add a 'last' statement after the '@fieldValue = split(" ",$line)' on line 19. However I think it's more likely that you need /all/ of the data to be output, so I suggest something like my program below. HTH, Rob use strict; use warnings; my @headers; while (<DATA>) { if (@headers) { my @data = split; for my $i (0 .. $#headers) { printf "%s=%s\n", $headers[$i], $data[$i]; } } else { @headers = split; } } __DATA__ csno rfpi header_1 header_2 header_3 header_4 header_5 header_6 header_7 header_8 header_9 1 1 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 2 2 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 3 3 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 4 1 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5 2 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 6 3 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 7 1 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 8 2 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 9 3 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 10 1 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 11 2 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 12 3 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 **OUTPUT** csno=1 rfpi=1 header_1=5.5 header_2=5.5 header_3=5.5 header_4=5.5 header_5=5.5 header_6=5.5 header_7=5.5 header_8=5.5 header_9=5.5 csno=2 rfpi=2 header_1=5.5 header_2=5.5 header_3=5.5 header_4=5.5 header_5=5.5 header_6=5.5 header_7=5.5 header_8=5.5 header_9=5.5 csno=3 rfpi=3 header_1=5.5 header_2=5.5 header_3=5.5 header_4=5.5 header_5=5.5 header_6=5.5 header_7=5.5 header_8=5.5 header_9=5.5 csno=4 rfpi=1 header_1=5.5 header_2=5.5 header_3=5.5 header_4=5.5 header_5=5.5 header_6=5.5 header_7=5.5 header_8=5.5 header_9=5.5 csno=5 rfpi=2 header_1=5.5 header_2=5.5 header_3=5.5 header_4=5.5 header_5=5.5 header_6=5.5 header_7=5.5 header_8=5.5 header_9=5.5 csno=6 rfpi=3 header_1=5.5 header_2=5.5 header_3=5.5 header_4=5.5 header_5=5.5 header_6=5.5 header_7=5.5 header_8=5.5 header_9=5.5 csno=7 rfpi=1 header_1=5.5 header_2=5.5 header_3=5.5 header_4=5.5 header_5=5.5 header_6=5.5 header_7=5.5 header_8=5.5 header_9=5.5 csno=8 rfpi=2 header_1=5.5 header_2=5.5 header_3=5.5 header_4=5.5 header_5=5.5 header_6=5.5 header_7=5.5 header_8=5.5 header_9=5.5 csno=9 rfpi=3 header_1=5.5 header_2=5.5 header_3=5.5 header_4=5.5 header_5=5.5 header_6=5.5 header_7=5.5 header_8=5.5 header_9=5.5 csno=10 rfpi=1 header_1=5.5 header_2=5.5 header_3=5.5 header_4=5.5 header_5=5.5 header_6=5.5 header_7=5.5 header_8=5.5 header_9=5.5 csno=11 rfpi=2 header_1=5.5 header_2=5.5 header_3=5.5 header_4=5.5 header_5=5.5 header_6=5.5 header_7=5.5 header_8=5.5 header_9=5.5 csno=12 rfpi=3 header_1=5.5 header_2=5.5 header_3=5.5 header_4=5.5 header_5=5.5 header_6=5.5 header_7=5.5 header_8=5.5 header_9=5.5 Tool completed successfully -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/