This code is a start. It needs some playing with, still. #!/usr/bin/perl
use strict; use warnings; use Data::Dumper; open my $FH, "< t" or die; my %root = (); my $depth = 0; my $curNode = \%root; while ( my $line = <$FH> ) { chomp $line; $line =~ /^(\s*)/; my $leadingSpace = length $1; if ( $line =~ /^\s+\\==\+(.*) :$/ ) { my $nodeName = $1; $curNode->{ $nodeName }{ '__PARENT__' } = $curNode; $curNode = $curNode->{ $nodeName }; } elsif ( $line =~ /^\s+\|----([^.]+)\.+([^.]+)$/ ) { $curNode->{ $1 } = $2; } } print Dumper ( \%root ); -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/