use strict; use warnings; my $state; my $title; my @summary; while (<>) { s/\s+$//; if (/^\*(\w*)\s+(.*)/) { my ($s,$t)=(lc($1),$2); if ($title) { while (@summary && $summary[-1] eq "") { delete $summary[-1]; } printf("tick new -t \"%s\"%s%s\n", $title, $state?" -S $state":"", scalar @summary?" -s - <<__EOF__\n".join("\n",@summary)."\n__EOF__\n":""); @summary=(); } $state= $s; $title= $t; } else { push @summary, $_; } }