Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

How to inset "+" symbol in binary files ?

by bh_perl (Monk)
on Mar 24, 2004 at 14:41 UTC ( #339410=perlquestion: print w/replies, xml ) Need Help??

bh_perl has asked for the wisdom of the Perl Monks concerning the following question:

Hi, How could I insert "+" symbols in binary files ? Could somebody give some ideas ? tqvm... bh
  • Comment on How to inset "+" symbol in binary files ?

Replies are listed 'Best First'.
Re: How to inset "+" symbol in binary files ?
by Abigail-II (Bishop) on Mar 24, 2004 at 14:48 UTC
    Uhm, the same way as you do in non-binary files? If the file is small: open the file read/write, read in the file (in a scalar), insert "+" wherever you want it, seek back to the beginning of the file, write the scalar, close the file. If the file is large, open a temporary file for writing, open the original file for reading, read from the file up to the point where you want to insert the "+" while writing what you've read (in chunks) to the temporary file, write "+" to temporary file, read rest of file while writing it to the temporary file, close both files, move temporary file to original file.


      If you do it on Windows, you have to use binmode on the file handle.

      - Tom

        Not using windows for anything but games/shell windows to other systems and Office apps I've always been curious as to why this is the case. It seems odd to me that an OS would care what kind of file you are opening.
        Always use binmode and you'll never get bit by this on any of the platforms it matters (windows is just one).

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://339410]
Approved by Paladin
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (6)
As of 2023-02-06 11:55 GMT
Find Nodes?
    Voting Booth?
    I prefer not to run the latest version of Perl because:

    Results (34 votes). Check out past polls.