-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Salut.
Inainte de toate, rog "bagatorii in seama" sa nu mai comenteze pe seama
codului meu perl, inca sunt incepator.
Apoi, multumesc celor care au dat solutii la mesajul meu anterior in
legatura cu perl-ul.
Problema mea consta in urmatoarele: cand folosesc mai multe procese in
paralel, si toate scriu pe stdout, si redirectez stdout catre un fisier,
undeva pe drum se pierd date. Intrebarea mea: De ce? Si unde se pierd
datele? In perl? Sau la redirectare?
Eu cred ca la redirectare. Va rog sa cititi mai jos, am un exemplu.
- ---------file e.pl--------------
#!/usr/bin/perl
use Parallel::ForkManager;
use strict;
sub main()
{
my $file="/etc/passwd";
my $pm=new Parallel::ForkManager(10);
my $line="";
open(FIS, "$file") or die("Could not open $file: $!");
while(<FIS>)
{
$pm->start and next;
$line=$_;
print $line;
$pm->finish;
}
$pm->wait_all_children;
close(FIS);
}
&main;
- -------------------------------------
[EMAIL PROTECTED] b4]$ wc -l /etc/passwd
1823 /etc/passwd
[EMAIL PROTECTED] b4]$ perl e.pl >momo
[EMAIL PROTECTED] b4]$ wc -l momo
1771 momo --> De ce?????????????????????
[EMAIL PROTECTED] b4]$ perl e.pl >momo
[EMAIL PROTECTED] b4]$ wc -l momo
1755 momo --> iarasi...
[EMAIL PROTECTED] b4]$ perl e.pl >momo
[EMAIL PROTECTED] b4]$ wc -l momo
1765 momo --> inca o data...
[EMAIL PROTECTED] b4]$ perl e.pl >momo
[EMAIL PROTECTED] b4]$ wc -l momo
1780 momo --> si inca o data...
[EMAIL PROTECTED] b4]$ perl e.pl | wc -l
1823 --> asa merge bine, deci cred ca nu e de la file locking...
[EMAIL PROTECTED] b4]$ perl e.pl | wc -l
1823 --> idem, dar e
[EMAIL PROTECTED] b4]$
PS: am "descoperit" ca daca folosesc tee, imi merge.
[EMAIL PROTECTED] b4]$ perl e.pl | tee momo
[...lines from /etc/passwd...]
[EMAIL PROTECTED] b4]$ wc -l momo
1823 momo
Mie mi se pare ciudat.
Poate totusi ar trebui sa mai citesc in manualul de bash despre
input/output redirection,file locking si parallel processes...
...and justice for all..
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFCMT2B+rMtQ9y8VU4RAluDAJ9AKCrGOYArGCKZTASzRwnNpSSMhACeLAC4
2yj6JOpVL5yfk7UfKlo2ziE=
=oxXV
-----END PGP SIGNATURE-----
---
Detalii despre listele noastre de mail: http://www.lug.ro/