NAME Graph::Reader::UnicodeTree - Perl class for reading a graph from unicode tree text format. SYNOPSIS use Graph::Reader::UnicodeTree; my $obj = Graph::Reader::UnicodeTree->new; my $graph = $obj->read_graph($unicode_tree_file); METHODS "new" my $obj = Graph::Reader::UnicodeTree->new; Constructor. This doesn't take any arguments. Returns Graph::Reader::UnicodeTree object. "read_graph" my $graph = $obj->read_graph($unicode_tree_file); Read a graph from the specified file. The argument can either be a filename, or a filehandle for a previously opened file. Returns Graph object. UNICODE TREE FILE FORMAT Vertices are simple text. Edges are '─┬─' or '───' in main line and ' ├─' or ' └─' in other lines. Example: 1─┬─2 ├─3───4 ├─5 ├─6─┬─7 │ ├─8 │ └─9 └─10 EXAMPLE1 use strict; use warnings; use Encode qw(decode_utf8 encode_utf8); use Graph::Reader::UnicodeTree; use IO::Barf qw(barf); use File::Temp qw(tempfile); # Example data. my $data = decode_utf8(<<'END'); 1─┬─2 ├─3───4 ├─5 ├─6─┬─7 │ ├─8 │ └─9 └─10 END # Temporary file. my (undef, $tempfile) = tempfile(); # Save data to temp file. barf($tempfile, encode_utf8($data)); # Reader object. my $obj = Graph::Reader::UnicodeTree->new; # Get graph from file. my $g = $obj->read_graph($tempfile); # Clean temporary file. unlink $tempfile; # Print to output. print $g."\n"; # Output: # 1-10,1-2,1-3,1-5,1-6,3-4,6-7,6-8,6-9 EXAMPLE2 use strict; use warnings; use Graph::Reader::UnicodeTree; if (@ARGV < 1) { print STDERR "Usage: $0 data_file\n"; exit 1; } my $data_file = $ARGV[0]; # Reader object. my $obj = Graph::Reader::UnicodeTree->new; # Get graph from file. my $g = $obj->read_graph($data_file); # Print to output. print $g."\n"; # Output like: # 1-10,1-2,1-3,1-5,1-6,3-4,6-7,6-8,6-9 DEPENDENCIES Encode, Graph::Reader, Readonly. SEE ALSO Graph::Reader base class for Graph file format readers Task::Graph::Reader Install the Graph::Reader modules. REPOSITORY AUTHOR Michal Josef Špaček LICENSE AND COPYRIGHT © Michal Josef Špaček 2013-2021 BSD 2-Clause License VERSION 0.03