in reply to Vector manipulation

There are quite a few problems with your code. The first you need to sort out is where you read in the data:
push @data, V(split) while <$in_fh>;
You are creating one vector from all 6 points on each line, when you should be creating two vectors for each line:
while (<$in_fh>) { my @points = split; push(@data, V( @points[0,1,2] ), V( @points[3,4,5] ) ); }
Now your @data can be looped through and you can perform the calculations on the vectors.