use strict; use warnings; use PPM::Repositories; use Net::Ping; foreach my $repository (split(/[\r\n]/, `ppm rep`)) { next unless $repository =~ s/^\[[\d\ ]+\]\ (.*)$/$1/; system("ppm rep delete $repository > NUL") unless $repository =~ /activestate/i; } foreach my $repository (keys %Repositories) { my $domain = my $location = $Repositories{$repository}->{location}; next unless $domain =~ s|^\s*http://([^/]+)/.*$|$1|; if (Net::Ping->new()->ping($domain)) { print "$repository is alive.\n"; system("ppm repository add $repository $location > NUL"); } else { print "$repository is dead.\n"; } } print $/, `ppm rep`;