Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re^2: How we can do regex of this?

by Anonymous Monk
on Dec 23, 2012 at 18:46 UTC ( #1010111=note: print w/replies, xml ) Need Help??

in reply to Re: How we can do regex of this?
in thread How we can do regex of this?

Somewhat simpler:
use strict; use warnings; my @names = split(' ', <DATA>); my @lenghts = split(' ', <DATA>); my %sizes; @sizes{@names} = map { length } @lenghts; sub strip_space { my ($str) = @_; $str =~ s/^\s+//; unpack 'A*', $str; } my %data; while (defined(my $line = <DATA>)) { my $pos = 0; foreach my $name (@names) { push @{$data{$name}}, strip_space(substr($line, $pos, $sizes{$name})); $pos += $sizes{$name} + 1; } } use Data::Dumper; print Dumper \%data; __END__ Mod Sub-Module Model Serial ---- --------------------------- ------------------ ----------- 1 Distributed Forwarding Card WS-F6700-DFC3CXL SAL1434RLPY 3 7600 ES+ DFC XL 7600-ES+3CXL JAE14520N29 3 7600 ES+T 20x1GE SFP 76-ES+T-20GQ JAE145301XM 5 Policy Feature Card 3 7600-PFC3CXL JAE14330E6J 5 C7600 MSFC4 Daughterboard 7600-MSFC4 JAE14320QBE 6 Policy Feature Card 3 7600-PFC3CXL JAE14330EAO 6 C7600 MSFC4 Daughterboard 7600-MSFC4 JAE14320QA8 7 Distributed Forwarding Card WS-F6700-DFC3CXL SAL1433QHBR 8 Distributed Forwarding Card WS-F6700-DFC3CXL SAL1433QXF9

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1010111]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (5)
As of 2018-06-24 03:41 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (126 votes). Check out past polls.