@dave1707 - aha so the value range of the noise.perlin output is used (your first/second examples) as the axes for x and y and your using the single output of the as the z value. My problem - not thinking in maths mode just thinking of a semi random value for the height in a heightmap for each x and y point.
Your third example is quite spectacular especially when you consider the array can be moved and expanded in real time and space - when you zoom into the array and move it around. Thanks again, time for me to try to use this.