Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
I like JavaFan's one-liner solution, provided that the assumptions it makes are suitable to your situation. It assumes that each file isn't too big to fit in memory, that the 10 bytes you want to replace will need to have the same replacement value in all files, and that all files of interest have names that don't begin with ".".

If the replacement value needs to vary from one file to the next (and assuming you have a way for a perl script to work that out), it would be easiest to use JavaFan's method: for a given file, slurp it into a single scalar (e.g. $_), apply a regex replacement, and write a new copy of the file.

If your files are actually too big (which these days means more than a gigabyte or two per file), you'll want to use the read and write functions (rather than "sysread" and "syswrite"); that way, you'll be using buffered i/o in all operations. Follow JavaFan's advice (and read the man pages, too) about how and when to use "tell" and "seek"; depending on what's supposed to go into those 10 bytes that you're replacing, you might need to use pack.


In reply to Re: Changing data with syswrite ? by graff
in thread Changing data with syswrite ? by pbyfire

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



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (3)
As of 2024-04-25 23:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found