I would build either a list of hashes, or a hash of hashes:
use warnings; use strict; use Data::Dumper; my $data = '\player_0\STOMP\frags_0\0\ping_0\ 146\team_0\0\mesh_0\Male + Soldier'. '\skin_0\TOPModels.Skins.CCSM\face_0\TOPModels.Skins.Legs\n +gsecret_0\false'. '\player_1\animals\frags_1\0\ping_1\ 374\team_1\1\mesh_1\Ma +le Soldier'. '\skin_1\TOPModels.Skins.SFMe\face_1\TOPModels.Skins.SWATTe +x0'. '\ngsecret_1\false\player_2\Rigodon\frags_2\0\ping_2\ 159\t +eam_2\1'. '\mesh_2\Male Soldier\skin_2\TOPModels.Skins.SFMe\face_2\TO +PModels.Skins.SWATTex0'. '\ngsecret_2\false\queryid\64.1'; #Build a heirarchy my @list; my %tree; while ($data=~/\G\\(\w+)_(\d+)\\([^\\]+)/g) { $list[$2]->{$1}=$3; $tree{$2}->{$1}=$3; } print Dumper(\@list,\%tree); __END__ $VAR1 = [ { 'face' => 'TOPModels.Skins.Legs', 'skin' => 'TOPModels.Skins.CCSM', 'frags' => '0', 'team' => '0', 'ping' => ' 146', 'player' => 'STOMP', 'ngsecret' => 'false', 'mesh' => 'Male Soldier' }, { 'face' => 'TOPModels.Skins.SWATTex0', 'skin' => 'TOPModels.Skins.SFMe', 'frags' => '0', 'team' => '1', 'ping' => ' 374', 'player' => 'animals', 'ngsecret' => 'false', 'mesh' => 'Male Soldier' }, { 'face' => 'TOPModels.Skins.SWATTex0', 'skin' => 'TOPModels.Skins.SFMe', 'frags' => '0', 'team' => '1', 'ping' => ' 159', 'player' => 'Rigodon', 'ngsecret' => 'false', 'mesh' => 'Male Soldier' } ]; $VAR2 = { '0' => { 'face' => 'TOPModels.Skins.Legs', 'skin' => 'TOPModels.Skins.CCSM', 'frags' => '0', 'team' => '0', 'ping' => ' 146', 'player' => 'STOMP', 'ngsecret' => 'false', 'mesh' => 'Male Soldier' }, '1' => { 'face' => 'TOPModels.Skins.SWATTex0', 'skin' => 'TOPModels.Skins.SFMe', 'frags' => '0', 'team' => '1', 'ping' => ' 374', 'player' => 'animals', 'ngsecret' => 'false', 'mesh' => 'Male Soldier' }, '2' => { 'face' => 'TOPModels.Skins.SWATTex0', 'skin' => 'TOPModels.Skins.SFMe', 'frags' => '0', 'team' => '1', 'ping' => ' 159', 'player' => 'Rigodon', 'ngsecret' => 'false', 'mesh' => 'Male Soldier' } };
HTH

Yves / DeMerphq
--
Have you registered your Name Space?


In reply to Re: Split line with corresponding columns and values by demerphq
in thread Split line with corresponding columns and values by foogod

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.