#!/usr/bin/perl use strict; use Data::Dumper; use warnings; local $/ = undef; my $data = ; my @match; @match = $data =~ m|([^<]*)|sg; foreach my $m (@match) { my $prepared_string = prepare_string($m); $data =~ s/$m/$prepared_string/s; } print $data; ## subs ## sub prepare_string { my $string = shift; $string =~ s/\n||<\/Text>//g; my $chunk_size = 10; my $prepared_string; for (my $i = 0; $i <= length($string); $i=$i+$chunk_size) { my $part = substr($string, $i, $chunk_size); $prepared_string .= "$part\n"; } return $prepared_string; } __DATA__ Hallo liebe Perl- Geme(i)nde. diesmal mit leerzeile abc V[iel]e Grüße leo11ps.: schönen abend