Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

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
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
Comment on Re: Split columns according header delimiter
Download Code

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1094819]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (5)
As of 2016-05-25 02:43 GMT
Find Nodes?
    Voting Booth?