Hello Monks,
I've encountered a problem while trying to split a string. This string is a Slurp of a large HTML file (~3million characters long, no images), which needs to be split into two smaller strings in order to be passed to a PDF converter. At the moment, this is what I have:
if (length($html[$i]) > 1000000) ## $html[$i] holds the current string + of html { my @bigHTML = ### Split here #########; for (my $z=0; $z <= $#bigHTML; $z++) { open (my $file, '>', "giant_${i}_$z.htm") or die $!; print $file $bigHTML[$z]; close $file; push(@lists, "giant_${i}_$z.htm"); } } else { ### Proceed normally
Ideally I would replace the ### Split here #### with $html[$i] =~ /(.{500000,}?<\/html>/gs; (splitting every 500,000 characters) but this does not work since split is limited to int max (~32000 iirc). Splitting every 32000 characters results in far too many smaller strings
Any suggestions as to how to get around this?
Thanks, Colin
edited for formatting
In reply to Split very big string in half by fpscolin
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |