#!/bin/perl5
use strict;
use warnings;
my ( @K_array, @R_array ) = ();
my $I = '';
my $out = qq(\n);
while (my $l = ) {
my ( $code, $value ) = $l =~ /^(\w|\#)\s+(.*)\n$/;
$I = $value if $code eq 'I';
if ( $code eq 'K' ){
$out .= "\n\n" unless @K_array;
push @K_array, $value
}
elsif ( $code eq 'R' ){
$out .= "\n" unless @R_array;
push @R_array, "$value\n"
}
$out .= qq($value\n) if $code eq 'S';
$out .= qq(\n) if $code eq 'F';
$out .= "\n" if $code eq '#'
}
my $K;
if ( $I ){
$K = $K_array[0] # assumes only 1 K with I
}
else{
$K .= '%' . $_ . ',' for @K_array;
chop $K
}
$out =~ s||$K
|;
my $R = join '', @R_array;
$out =~ s||\n$R|;
$out .= qq(\n);
if ( $I ){
$out =~ s||\n\n|;
$out =~ s||\n\n|;
}
print "$out\n";
__DATA__
C 1010
K Perl
K is
K cool
F 1234
S Alright
R Whatever
R More
R BlaBla