#!/usr/bin/perl -w use strict; use Data::Dumper; my ( @block, @datapoint ); $block[0][0][0] = 1; $block[0][0][1] = 367.642121; $block[0][0][2] = 1396.068976; $block[0][0][3] = 0; $block[0][0][4] = 88888; $block[0][0][5] = 99999; $block[0][0][6] = 99999; $block[0][0][7] = 0; $block[0][1][0] = 1; $block[0][1][1] = 958.697518; $block[0][1][2] = 1394.778302; $block[0][1][3] = 0; $block[0][1][4] = 88888; $block[0][1][5] = 99999; $block[0][1][6] = 99999; $block[0][1][7] = 0; #DATAPOINT $datapoint[0][0] = 1; $datapoint[0][1] = 725.166956; $datapoint[0][2] = 1315.976847; $datapoint[0][3] = 0; $datapoint[0][4] = 99999; $datapoint[1][0] = 2; $datapoint[1][1] = 706.139399; $datapoint[1][2] = 1240.897744; $datapoint[1][3] = 0; $datapoint[1][4] = 777; my ($blocka, $datapointa) = FINDPOINTSONVERTEX(\@block, \@datapoint); sub FINDPOINTSONVERTEX { my ($blocks, $datapoint) = @_; my $i10 = 0; my $oo = 0; my $jj; P: for my $kk (0..$#$datapoint) { print "KK: $kk\n"; BB: for $jj (0..$#{@{$blocks->[$datapoint->[$kk]->[3]]}}) { print "JJ: $jj\n"; if ($datapoint->[$kk]->[1] == $blocks->[$datapoint->[$kk]->[3]]->[$jj]->[1] ) { $datapoint->[$kk]->[4] = $jj; $blocks->[$datapoint->[$kk]->[3]]->[$jj]->[5] = 11112; $oo = $oo + 1; $datapoint->[$kk]->[4] = 777; next P; } } } return($blocks, $datapoint); } print Dumper( $blocka, $datapointa ); # # Output # # #$VAR1 = [ # [ # [ # 1, # '367.642121', # '1396.068976', # 0, # 88888, # 99999, # 99999, # 0 # ], # [ # 1, # '958.697518', # '1394.778302', # 0, # 88888, # 99999, # 99999, # 0 # ] # ] # ]; #$VAR2 = [ # [ # 1, # '725.166956', # '1315.976847', # 0, # 99999 # ], # [ # 2, # '706.139399', # '1240.897744', # 0, # 777 # ]