my $marker = "\n"; my $endmarker = "\n"; my $marker_length = length($endmarker); $marker_length++ if $^O =~ /MSWin/; # because of the \n -> CRLF conversion sub append { my ($file, $data) = @_; if (!-s $file) { open my $FH, '>', $file or die qq{Can't open "$file" : $^E\n}; print $FH $marker, $data, $endmarker; close $FH; } else { open my $FH, '+<', $file or die qq{Can't open "$file" : $^E\n}; seek $FH, -$marker_length, 2; print $FH $data, $endmarker; close $FH; } } append('text.xml', "ahoj\n"); append('text.xml', "cau\n"); append('text.xml', "co\n"); append('text.xml', "delas?\n");