It doesn't look like you were far off in your script, and I think the "Connection refused" error that
Roger mentioned might be your problem. You should make sure that doing those actions in a normal browser does what you expect it to do, before you start blaming your script for unexpected results.
You could try using HTTP::Recorder to record your WWW::Mechanize script. I tried it, and it generated this script:
$mech->get("http://search.lyrics.astraweb.com/?word=hey+jude");
$mech->follow_link(text => "Hey Jude (lennon/mccartney)", n => "1");
Since the "Hey Jude" link (without authors) produced a 500 (connection refused) error, so I chose another one for the example.
Linda