Hmm... Perlin noise is a lot more complex to generate than I was expecting.
For each segment take the midpoint of the linear interpolation and add noise at a smaller magnitude. Recurse in until you are at the desired scale. In 2D, flip the sample points between a "square" pattern and a "diamond" pattern each time to avoid a boxy tiled look.
The biggest downside of this method is that it's much less flexible about scaling: to get more resolution you have to double each dimension.