Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: creating the hierarchy pattern from the input file

by LanX (Saint)
on Sep 16, 2021 at 11:40 UTC ( [id://11136824]=note: print w/replies, xml ) Need Help??


in reply to creating the hierarchy pattern from the input file

Just for fun:

use strict; # https://perlmonks.org/?node_ +id=11136806 use warnings; # creating the hierarchy patte +rn from the input file use Data::Dump qw/pp dd/; my $tree ={}; while ( my $line =<DATA> ) { chomp $line; my @keys = split /@/, $line; my $ref = $tree; $ref = ( $ref->{$_} //= {} ) # descend into hashrefs, init +explicitly when missing for @keys } my $out = pp $tree; # now "d1 => { d1 => {} }," et +c # purge $out =~ s/\Q => {}//g; # ... empty hashes $out =~ s/\Q => / /g; # ... fat arrows $out =~ s/\Q},/}/g; # ... trailing commas print $out; __DATA__ instreg@d1@d1 instreg@d1@d2 instreg@d2@d1 instreg@d3@d1 instreg@d4@d1 instreg@d5@d1 instreg@d6@d1 instreg@d7@d1 instreg@d8@d1 alureg@d1@d1 alureg@d2@d1 alureg@d3@d1 alureg@d4@d1 alureg@d5@d1 alureg@d6@d1 alureg@d7@d1 alureg@d8@d1 pgmctr@d1@d1 pgmctr@d2@d1 pgmctr@d3@d1 pgmctr@d4@d1 pgmctr@d5@d1 pgmctr@m1 pgmctr@m2 pgmctr@m3 pgmctr@m4 pgmctr@m5

OUTPUT:
-*- mode: compilation; default-directory: "d:/tmp/pm/" -*- Compilation started at Thu Sep 16 13:39:54 C:/Strawberry/perl/bin\perl.exe -w d:/tmp/pm/text_to_tree.pl { alureg { d1 { d1 } d2 { d1 } d3 { d1 } d4 { d1 } d5 { d1 } d6 { d1 } d7 { d1 } d8 { d1 } } instreg { d1 { d1, d2 } d2 { d1 } d3 { d1 } d4 { d1 } d5 { d1 } d6 { d1 } d7 { d1 } d8 { d1 } } pgmctr { d1 { d1 } d2 { d1 } d3 { d1 } d4 { d1 } d5 { d1 } m1, m2, m3, m4, m5, } } Compilation finished at Thu Sep 16 13:39:55

alternatively

use Data::Dumper (which is core) and change the settings for => ("Pair") and so on. See https://metacpan.org/pod/Data%3A%3ADumper#Configuration-Variables-or-Methods

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

update

added more comments to code

Replies are listed 'Best First'.
Re^2: creating the hierarchy pattern from the input file
by pruthvik (Initiate) on Sep 16, 2021 at 16:49 UTC

    Hi LanX

    what can be used instead of use "Data::Dump qw/pp dd/;"

      See LanX's comments at the end of the post on using the core Data::Dumper module.


      Give a man a fish:  <%-{-{-{-<

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (5)
As of 2024-04-19 20:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found