localhorst: STDOUT abfangen und im laufenden Programm parsen

Beitrag lesen

Hallo Forum,

ich habe hier ein Programm (oder zumindestens soll es mal eins werden) in dem ich über den Befehl system() das Programm fastacmd aufrufe.
Diese Programm liefert mir dann eine Ausgabe auf STDOUT(bzw jetzt gerade in die Datei test).

Code Ausschnitt:

while ((my $key,my $value) = each %short) {
my $fastacmd_string="fastacmd -d nr -s $value -T >>test";
system($fastacmd_string);
undef($fastacmd_string);
}

Ausgabe aus der Datei oder auch auf STDOUT, schaut gleich aus:

NCBI sequence id: gi|46434594|gb|EAK93999.1|
NCBI taxonomy id: 237561
Common name: Candida albicans SC5314
Scientific name: Candida albicans SC5314

NCBI sequence id: gi|46434569|gb|EAK93975.1|
NCBI taxonomy id: 237561
Common name: Candida albicans SC5314
Scientific name: Candida albicans SC5314

NCBI sequence id: gi|30582963|gb|AAP35711.1|
NCBI taxonomy id: 9606
Common name: human
Scientific name: Homo sapiens

Das ist zB eine Ausgabe von drei Schleifen durchläufen.
Von dieser Ausgabe auf STDOUT möchte ich nun jeweils die Zweite Zeile haben und daraus nur die Nummer, den RegExp bekomme ich schon hin, ich weiß nur nicht wie und wo ich die Ausgabe abfangen kann damit ich sie bearbeiten kann.

Alles in einer Datei zu schreiben um sie dann noch mal komplett durchsuchen zu lassen halte ich für unlogisch, wenn ich eh schon in der Schleife die ganze Datei durchgehe.

Über etwas Hilfe würde ich mich sehr freuen.

Gruß
Localhorst