11 |
use Storable qw/freeze thaw/; |
use Storable qw/freeze thaw/; |
12 |
|
|
13 |
|
|
14 |
|
my $debug = 0; |
15 |
my $path = '/data/isi/full.txt'; |
my $path = '/data/isi/full.txt'; |
16 |
my $limit = 5000; |
my $limit = 5000; |
17 |
my $offset = 0; |
my $offset = 0; |
27 |
'view=s' => \@views, |
'view=s' => \@views, |
28 |
'listen|port=i' => \$listen, |
'listen|port=i' => \$listen, |
29 |
'connect=s' => \@nodes, |
'connect=s' => \@nodes, |
30 |
|
'debug!' => \$debug, |
31 |
) or die $!; |
) or die $!; |
32 |
|
|
33 |
my $t = time; |
my $t = time; |
122 |
sub merge_out { |
sub merge_out { |
123 |
my $new = shift; |
my $new = shift; |
124 |
|
|
|
warn "## merge $new\n"; |
|
|
|
|
125 |
foreach my $k1 ( keys %$new ) { |
foreach my $k1 ( keys %$new ) { |
126 |
|
|
127 |
foreach my $k2 ( keys %{ $new->{$k1} } ) { |
foreach my $k2 ( keys %{ $new->{$k1} } ) { |
132 |
if ( ! defined $out->{$k1}->{$k2} ) { |
if ( ! defined $out->{$k1}->{$k2} ) { |
133 |
$out->{$k1}->{$k2} = $n; |
$out->{$k1}->{$k2} = $n; |
134 |
} elsif ( $k1 =~ m{\+} ) { |
} elsif ( $k1 =~ m{\+} ) { |
135 |
warn "# agregate $k1 $k2"; |
# warn "## agregate $k1 $k2"; |
136 |
$out->{$k1}->{$k2} += $n; |
$out->{$k1}->{$k2} += $n; |
137 |
} elsif ( $ref eq 'ARRAY' ) { |
} elsif ( $ref eq 'ARRAY' ) { |
138 |
push @{ $out->{$k1}->{$k2} }, $n; |
push @{ $out->{$k1}->{$k2} }, $n; |
144 |
} |
} |
145 |
} |
} |
146 |
|
|
147 |
warn "## merge out ", dump $out; |
warn "## merge out ", dump $out if $debug; |
148 |
} |
} |
149 |
|
|
150 |
sub run_code { |
sub run_code { |