Kopyta вот мое решение.
use strict;
open(IN, "open(OUT, ">out.txt");
my %lens = (aaa => 10, bbb => 12, ccc => 3);
my $type;
my $element;
while (sysread(IN, $type, 3)) {
unless (exists $lens{$type}) {
print "Can not find type $type\\n";
last;
};
sysread(IN, $element, $lens{$type});
print OUT $element . "\\n";
};
close(IN);
close(OUT);
Хотя было бы полезнее если ты бы показал свое "корявое" решение, может быть и мое ничуть не лучше.