in reply to Combine line segments to form a single line

Thanks for the replies, much appreciated. All the solutions work on the data I supplied in my original post. As tobyink says the segment samples I gave form a cycle but when I try the solutions on segments that don't form a cycle I run into a problem. For example, if I take out one of the segments and use choroba's solution I get three lines.
my @AoA = ( # removed [11,29, 10,25], [15,35, 11,29], [15,15, 11,21], [10,25, 11,21], [15,35, 21,39], [25,40, 21,39], [21,11, 25,10], [15,15, 21,11], [35,35, 29,39], [29,39, 25,40], [35,15, 29,11], [25,10, 29,11], [40,25, 39,29], [35,35, 39,29], [39,21, 40,25], [35,15, 39,21], ); # Result (15,35, 11,29) (15,15, 11,21, 10,25) (15,35, 21,39, 25,40, 29,39, 35,35, 39,29, 40,25, 39,21, 35,15, 29,11, + 25,10, 21,11, 15,15)
It seems to depend on which point I pick to start with, so if I pick a point at the end or start of the line it will work (where the break is), but I don't know in advance what these points are. Here is the same data with the segments re-arranged so the break point is at the start:
my @AoA = ( # removed [11,29, 10,25], [10,25, 11,21], [15,35, 11,29], [15,15, 11,21], [15,35, 21,39], [25,40, 21,39], [21,11, 25,10], [15,15, 21,11], [35,35, 29,39], [29,39, 25,40], [35,15, 29,11], [25,10, 29,11], [40,25, 39,29], [35,35, 39,29], [39,21, 40,25], [35,15, 39,21], ); # Result (10,25, 11,21, 15,15, 21,11, 25,10, 29,11, 35,15, 39,21, 40,25, 39,29, + 35,35, 29,39, 25,40, 21,39, 15,35, 11,29)