in reply to text processing - convert list of vectors to tabular format

I rather like this, because I think it is simple to understand and would be easy to maintain:
use strict; use warnings; my ($x, $y) = (0,0); #table axes, x is horizontal, y is vertical my ($max_x, $max_y) = (0,0); my $table ; #hash of arrays while (<DATA>) { chomp; #print "$_\n"; if ( $_ =~ m/^v_(.*)\s*{/ ) { $y = 0; } elsif ( $_ =~ m/^}$/ ) { $max_x = $x if $x++ > $max_x; } else { $table->[$x]->[$y] = $_; $max_y = $y if $y++ > $max_y; } } for my $y (0..$max_y) { for my $x (0..$max_x) { my $item = defined( $table->[$x]->[$y] ) ? $table->[$x]->[$y] +: ' '; print "$item "; } print "\n"; } __DATA__ v_x { x1 x2 x3 x4 x5 x6 x7 x8 } v_y { y1 y2 y3 y4 y5 } v_z { z1 z2 z3 z4 z5 z6 }

Replies are listed 'Best First'.
Re^2: text processing - convert list of vectors to tabular format
by vnpenguin (Beadle) on Dec 15, 2005 at 20:40 UTC
    Hi tphyahoo, There is an extra empty ligne in output :) So maybe:
    for my $y (0..$max_y-1) { ... }
    Thank you !