Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: Split columns according header delimiter

by choroba (Chancellor)
on Jul 23, 2014 at 15:55 UTC ( #1094819=note: print w/replies, xml ) Need Help??

in reply to Split columns according header delimiter

First, I store the lengths of columns to the @lengths array. I then create a template for unpack to process the table.
#!/usr/bin/perl use warnings; use strict; use Data::Dumper; my $header = <DATA>; my $pattern = <DATA>; my @lengths; push @lengths, length $1 while $pattern =~ /(\+-*)/g; my $template = join '', map "A$_", @lengths; my @names = unpack $template, $header; my @table; while (my $line = <DATA>) { substr $line, 0, 1, q(); # Remove the leading space. my %row; @row{@names} = unpack $template, $line; push @table, \%row; } print Dumper \@table; __DATA__ app db comment time blabla +--------+-----+----------+---------+------ one a rge 00:00:00 DFDF two b fghfjjf 00:00:00 fgfg three cc fjfjfj 00:00:00 fh four ddd fjgkk 00:00:00 tjku
لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1094819]
[shmem]: Being bull headed - *sigh*

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (3)
As of 2017-04-29 09:48 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (531 votes). Check out past polls.