use File::Slurp; # (...) my $current_string = ""; my $current_size = 0; for my $file (@html_files) { my $new_file_string = read_file($file); # File::Slurp function my $len = length $new_file_string; if ($current_size + $len > $size_limit) { convert_to_pdf($current_string); $current_string = $new_file_string; $current_size = $len; } else { $current_string .= $new_file_string; $current_size += $len; } } convert_to_pdf($current_string) if $current_string;