sub Table::Write { ... for my $set (@$Table) { my $start = $set->[RANGE_START]; my $end = $set->[RANGE_END]; my $name = $set->[RANGE_NAME]; if ($start == $end) { push @OUT, sprintf "%04X\t\t%s\n", $start, $name; } else { push @OUT, sprintf "%04X\t%04X\t%s\n", $start, $end, $name; } }