Devel-Module-Trace
view release on metacpan or search on metacpan
script/devel_module_trace_result_server view on Meta::CPAN
push @{$flat}, $mod;
if($mod->{'sub'}) {
for my $submod (@{$mod->{'sub'}}) {
$submod->{'parent'} = $mod;
}
my $subs = _flatten_results($mod->{'sub'});
push @{$flat}, @{$subs};
$mod->{'num_childs'} += scalar @{$subs};
}
my($time, $milliseconds) = split(/\./mx, $mod->{'time'});
$mod->{'human_starttime'} =
POSIX::strftime("%H:%M:", localtime($time)).
POSIX::strftime("%S", localtime($time)).'.'.$milliseconds;
($time, $milliseconds) = split(/\./mx, ($mod->{'time'}+$mod->{'elapsed'}));
$mod->{'human_endtime'} =
POSIX::strftime("%H:%M:", localtime($time)).
POSIX::strftime("%S", localtime($time)).'.'.$milliseconds;
}
return($flat);
}
################################################################################
sub _get_template {
our $data = "";
my $template = "";
if(-e 'templates/index.tt') {
open(my $fh, '<', 'templates/index.tt') or die("cannot read index.tt: $!");
while(<$fh>) { $template .= $_; }
close($fh);
} else {
if(!$data) {
while(<DATA>) { $template .= $_; }
}
$template = $data;
}
return($template);
}
################################################################################
sub _read_results {
my($file) = @_;
open(my $fh, '<', $file) or die("cannot open $file: $!");
my $content = "";
while(<$fh>) { $content .= $_; }
close($fh);
if($content !~ m/^\$VAR1/mx) {
die("unknown result file format");
}
my($VAR1);
## no critic
eval($content);
## use critic
die($@) if($@);
return($VAR1);
}
################################################################################
__DATA__
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Devel::Module::Trace</title>
<link type="text/css" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" />
<link type="text/css" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<style type='text/css'>
BODY {
padding-top: 25px;
}
TABLE.table TD, TABLE.table TH {
white-space: nowrap;
}
.node {
white-space: nowrap;
height: 13px;
position: absolute;
background: #5bc0de;
line-height: 13px;
font-size: x-small;
}
.node.direct {
background: #4cae4c;
}
.node_border {
position: absolute;
border: 1px solid grey;
border-radius: 2px;
}
.nodetooltip {
text-align: left;
white-space: nowrap;
}
.nodetooltip TD {
maring-left: 2px;
padding-right: 3px;
}
.legend {
height: 20px;
position: relative;
margin-right: 5px;
padding: 0 3px;
border: 1px solid grey;
top: -1px;
border-radius: 2px;
}
</style>
</head>
<body>
<!-- Navigation -->
<a name="top"></a>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="#stats">Statistics</a></li>
<li><a href="#timeline">Timeline</a></li>
( run in 0.664 second using v1.01-cache-2.11-cpan-119454b85a5 )