Napisałem skrypt do sortowania linków ale działa strasznie wolno nie bardzo daje sobie rade z 100 linkami a co dopiero było by przy 1000.
Bardzo proszę o jakieś rady lub już gotowe rozwiązania.

Bardzo proszę o pomoc.
Klops

#!/usr/bin/perl

use strict;
use warnings;

open(PLIK_1, "<",  "cat1.txt") or die "Nie można otworzyć pliku: $!";
my @scalar = <PLIK_1>;
print "- plik cat1.txt wczytany\n";
close PLIK_1;
open(PLIK_2, "<",  "rap.txt") or die "Nie można otworzyć pliku: $!";
my @scalar2 = <PLIK_2>;
print "- plik rap.txt wczytany\n";
close PLIK_2;
open(PLIK_3, "<",  "ego1.txt") or die "Nie można otworzyć pliku: $!";
my @scalar3 = <PLIK_3>;
print "- plik ego1.txt wczytany\n";
close PLIK_3;
my $a;
my $b;
my $c;


my $i = 0;
my $k =0;
my $e = 0;
while($i <= $#scalar)
{
if($scalar[$i] =~ m/xxxx.net\/(.*)\/(.*)$/){
$b = $2;
}
if($scalar2[$i] =~ m/xxxx2.net\/(.*)(.*)\/(.*)\.html/){
$a = $3;
}


if($a eq $b)
{
open(PLIK_cat, ">>",  "cat.txt") or die "Nie można otworzyć pliku: $!";
print PLIK_cat $scalar[$k++];
close PLIK_cat;
$i++;    
}
else
{
    if($k == $#scalar2)
    {
        $k = 0;
    }
    else
    {
        $k++;
    }
}



}
my $s = 0;
my $a1;
my $c2;
while($s <= $#scalar)
{
if($scalar2[$s] =~ m/xxxx2.net\/(.*)(.*)\/(.*)\.html/){
$a1 = $3;
}
if($scalar3[$s] =~ m/xxxx3.com\/(.*)\/(.*)$/){
$c2 = $2;
}
if($a1 eq $c2)
{
open(PLIK_ego, ">>",  "ego.txt") or die "Nie można otworzyć pliku: $!";
print PLIK_ego $scalar3[$e++];
close PLIK_ego;    
$s++;
}
else
{
if($e == $#scalar3)
    {
        $e = 0;
    }
    else
    {
        $e++;
    }
}    
}