Whoa... let's take a step back.

I think you'd be better off if your client(s) used ftp to transfer the binary stuff as data files (with distinct file names), and then just put references to the file names in the XML stream that gets posted. This way, there's nothing in the XML stream except valid XML, and doing stuff with the binary data will be easier, putting less load on the overall process.

But if there's no chance of doing it sensibly like that, then you just need to use a while loop for handling more than one <file/>...</file> element in the data, and hope for the best:

while ( $indata =~ s{<file fiop="([^"]+)" length="(\d+)"/>(.*?)</file> +}{}s ) { ( $fiop, $fileLength, $fileData ) = ( $1, $2, $3 ); # do something with $fileData, possibly after checking that # $fileLength == length( $fileData ), if that matters to you } if ( $indata =~ m{<file fiop=|</file>} ) { # there's something wrong with the posted data, so it's still # not suitable for XML parsing... }

In reply to Re^7: extracting a substring from a string - multiple variables by graff
in thread extracting a substring from a string - multiple variables by walinsky

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.