#!/usr/bin/perl # Splits a concatenated set of Stockholm Files into several individual files. use strict; use FileHandle; my $ac; my $lns=""; my $fh; while (<>) { if ($_=~m!^//!) { $fh->print("//\n"); $fh->close(); $ac = undef; $lns = ""; } else { if ($_=~/GF\s+AC\s+([0-9.RPF]+)/) { $ac=$1; ($fh=new FileHandle)->open(">$ac.stk") or die("Couldn't open file '$ac.stk'"); $lns=~/^. STOCKHOLM 1.0/ or $fh->print("# STOCKHOLM 1.0\n"); }; if (defined($fh)) { if (defined $lns) { $fh->print($lns); $lns=undef; } $fh->print($_); } else { $lns .= $_; } } }