Траблы С Потоками

  • Автор темы reddim
  • Дата начала
R

reddim

#1
Не могу сообразить как преобразовать многопоточный скрип что бы он работал корректно.
Суть: два текстовых файла logins.txt и pass.txt
Нужно их вывести на экран..что бы они были без повторенией !!! вот так нужно
user=pass1
user=pass2
user=pass3

<!--shcode--><pre><code class='perl'>use threads;
use threads::shared;

my $threads = 5;
my @trl = ();

$trl[$_] = threads->create(\&potoki) for 0..$threads - 1;
$_->join for @trl;

sub potoki
{
тут организовать чтение из файлов и вывод
}[/CODE]

Пробовал вот так...

<!--shcode--><pre><code class='perl'>#!/usr/bin/perl
use threads;
use threads::shared;

my $threads = 3;
my @trl = ();



$trl[$_] = threads->create(\&gogo) for 0..$threads - 1;
$_->join for @trl;

my ($password,$sites);
sub gogo
{
open (F,"<sites.txt");
while(my $site=<F>){

chomp($site);

open (N,"<pass.txt");
while(my $pass=<N>){

chomp($pass);

print "$site=$pass\n";

}}}
<>;[/CODE]
Но результат с повторами, т.е 3 потока = 3 повтора...

user=pass1
user=pass2
user=pass3
user=pass1
user=pass2
user=pass3
user=pass1
user=pass2
user=pass3

Вообщем пробовал и через foreach и еще по разному, пришел к выводу, что нужно это всё дело сделать что бы было в 1 цикле = while

т.е нужно это в 1 файл как то сделать а потом разбить, и тогда нормально получится...типа
while(@sites) {
my ($pass, $sites) = split $делитель => shift @sites;
}

просто это так если чесно за*ло 30 раз с этим сталкиваюсь и не могу решить.