[%TAG] data data data data [%TAG] data data [%TAG] data data [%TAG] data data data data Code fragement: Code does not work. if(/^\%/) { $tag=$line[0]; shift @line; $full = join ' ', @line; push $outer{$tag}@desclines, $full; }