Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: How to concatenate N binary buffers?

by choroba (Abbot)
on Nov 13, 2012 at 17:04 UTC ( #1003671=note: print w/ replies, xml ) Need Help??


in reply to How to concatenate N binary buffers?

. is the concatenation operator. Rather than writing 2 * $bufsize, remember how much you have read:

my $size1 = sysread $in1, my $buf1, $bufsize;
لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ


Comment on Re: How to concatenate N binary buffers?
Select or Download Code
Re^2: How to concatenate N binary buffers?
by mantager (Sexton) on Nov 14, 2012 at 06:56 UTC

    Thanks,
    I was wondering if "." could change in some way the content of the two buffers. Since it's string concatenation operator, I was worried that some sort of "stringification" of the two buffers could change them some way (this is why I asked if there's a way to concat two binary buffers). I am still not sure about this.

    Regarding the size of the read data: I am actually trying to put back together some stripes from a dead raid array, so if I am not able to read exactly $bufsize bytes I'd better die away asap :)

    Thanks a lot!

      I was wondering if "." could change in some way the content of the two buffers. Since it's string concatenation operator, I was worried that some sort of "stringification" of the two buffers could change them some way (this is why I asked if there's a way to concat two binary buffers). I am still not sure about this.

      Perl's strings are "8-bit-clean". You can store binary data in them, and you can use all string operators on them, even if you consider your data binary. Stringification does not happen here, because for Perl, the data is already a string.

      Regarding the size of the read data: I am actually trying to put back together some stripes from a dead raid array, so if I am not able to read exactly $bufsize bytes I'd better die away asap :)

      Consider using dd conv=noerror, dd_rescue or ddrescue instead of Perl. If you care about your data, don't touch it and pay experts to rescue the data.

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
        Consider using dd conv=noerror, dd_rescue or ddrescue instead of Perl.

        Already done. I'm reading from the dd'ed data, in fact.

        If you care about your data, don't touch it and pay experts to rescue the data.

        Buddy, now you're underestimating me ;)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1003671]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (5)
As of 2014-07-12 01:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (238 votes), past polls