#!/usr/bin/perl
use strict;
use warnings;
use Graph::Weighted;
my $g = Graph::Weighted->new;

$g->populate(
    [
        [ 0, 1, 2, 0, 0 ], # Vertex with 5 edges of weight 3
        [ 1, 0, 3, 0, 0 ], #               "               4
        [ 2, 3, 0, 0, 0 ], #               "               5
        [ 0, 0, 1, 0, 0 ], #               "               1
        [ 0, 0, 0, 0, 0 ], #               "               0
    ]
);
$g->populate(
    {
        0 => { 1=>2, 2=>1 },             # Vertex with 2 edges of weight 3
        1 => { 0=>3, 2=>1 },             #      "      2        "        4
        2 => { 0=>3, 1=>2 },             #      "      2        "        5
        3 => { 1=>2 },                   #      "      1        "        2
        4 => { 0=>1, 1=>1, 2=>1, 3=>1 }, #      "      4        "        4
    },
    'magnitude'
);

for my $v ($g->vertices) {
    my $w = $g->get_weight($v) || 0;
    warn"V: $v = $w\n";
}
for my $e ($g->edges) {
    my $w = $g->get_weight($e) || 0;
    my $m = $g->get_attr($e, 'magnitude') || 0;
    warn"E: @$e = $w $m\n";
}
