Instead of giving
cpan a URL, give a module name:
$ sudo cpan App::Xml_grep2
The only reasons I can think of to give a URL instead is if your module lives outside the CPAN directory, or you need a specific older version, rather than the current version.
I also find it odd that
cpan is using FTP when you gave it an HTTP URL. I don't know why that is, but that leads you to the real problem, which is that it looks like it's trying active FTP and failing, probably because of a firewall that only works with passive FTP. The way out of this trap is to force
cpan to use passive FTP.