my $stable = "1.8"; my $unstable = "1.7.2"; my @mirrors = ('http://www.foo.com/bar/stable', 'http://stable.example.com', 'http://downloads.site.org/$stable', 'http://www.unmetered.org/data', ); print "Mirror: $mirrors[rand @mirrors]"; #### my @releases = ( { name => 'Runtime RPM', desc => 'Includes viewer and Python distiller', versions => [{ version => $stable, files => [ "foo-$stable-1.i386.rpm"] }] # versions }, #name { name => 'Source RPM', desc => 'Includes viewer and Python distiller', versions => [{ version => $unstable, files => [ "foo-$stable-1.src.rpm"] }] # versions }, # name { name => 'Viewer in English', desc => '', versions => [{ version => $unstable, files => [ "foo-$unstable.torrent", "foo-$unstable.zip", "foo-$unstable.tar.bz2"] }] # versions }, # name ); foreach my $release (@releases) { my $versions = $release->{'versions'}; foreach my $version (@$versions) { my $files = $version->{'files'}; my $mirror = $mirrors[rand @mirrors]; foreach my $file (@$files) { print "$release->{'desc'}\n\t"; print "$version->{'version'}\n\t"; print "$file\n\t"; print "Mirror: $mirror/$file\n\n"; } } } #### my @types = ('Runtime RPM', 'Source RPM', 'Viewer', 'Distiller', 'Documentation', 'Source', 'Extras');