Sorry to bother you again, but your recent advice doesn't seem to help me. I've changed the code into this:
while (<>) {
chomp;
(@row) = split(/ /,$_);
foreach $item (@row) {
($node,$value) = split(/->/,$item,2);
$graph{$node} = $value;
}
sub depth {
return max map { $_ and 1 + depth($graph{$_}) } @_;
shift @_
}
print depth(keys %graph);
print "\n";
@row = ();
$graph = ""
}
, but I still get the values wrong, even if I just try it on a few lines of my infile.
Here is an example of my infile (9 lines), picked at random but in a sequence:
------------------------------------
1->14 2->3 3->1 4->5 5->3 6->3 7->9 8->9 9->10 10->6 11->10 12->10 13-
+>10 14->0 15->14 16->15 17->18 18->15 19->18 20->19 21->14
1->2 2->0 3->5 4->5 5->6 6->2 7->2 8->7 9->2
1->2 2->0 3->4 4->2 5->7 6->7 7->4 8->7 9->8 10->2
1->2 2->0 3->2 4->3 5->7 6->5 7->11 8->7 9->7 10->9 11->4 12->11 13->1
+2 14->15 15->11 16->2
1->2 2->0 3->2
1->2 2->0 3->2 4->5 5->3 6->5 7->6 8->6 9->8 10->9 11->12 12->10 13->2
1->2 2->0 3->5 4->5 5->2 6->2 7->6 8->2
1->3 2->3 3->4 4->0 5->4 6->5 7->6 8->6 9->8 10->11 11->8 12->11 13->1
+2 14->4
1->2 2->8 3->2 4->2 5->6 6->4 7->6 8->0 9->8 10->8
--------------------------------------
Here is the output that I get:
--------------------------------------
9
7
6
9
9
13
10
10
7
--------------------------------------
Then, if I try the script on a separate input file, containing just those 9 lines, I get the following output:
--------------------------------------
7
5
5
8
8
13
10
9
6
--------------------------------------
It's confusing... Do you have any ideas?
|