editing a file using perl script

Discussion in 'Perl' started by kelly, Jan 2, 2006.

  1. kelly

    kelly Guest

    I don't have a code to show you, what I need are references or
    algorithms so that I'm in a right track.

    By the way, thanks for introducing me the array or arrays. Now I can
    continue my script.

    Now I want to delete a line from a file. Line being the strings I
    got/saved to/from array of arrays.

    This website tells me I have to open my file and create a new file and
    put my changes to the new file.

    So here's what I have in mind, or questions on what should I do?
    -create a new blank file
    -open my existing file where it is full of strings with spaces, \n...etc.
    -where do I make my changes?
    -how will all the strings from existing file gets copied to new file?
    -will I need to save all the existing file strings to array of array or
    just array? what will be my separator?
    -then when do I do the copying to new file? Before of after deletion of
    strings from my array of arrays?
    -when or where can I do the deletion?

    Sorry about all the questions? I just can't start coding this if I don't
    know what to do. Please feel free to tell me websites or which perldoc
    I would be needing to research on.

    kelly, Jan 2, 2006
    1. Advertisements

  2. No idea what you are talking about, please quote appropriate context when
    refering to an earlier article.
    Your Question is Asked Frequently, see
    perldoc -q "delete a line"

    Jürgen Exner, Jan 3, 2006
    1. Advertisements

  3. kelly

    Jim Gibson Guest

    Whom are you thanking? Please include some context.
    The first method on this web page is a typical way of modifying a file.
    You should try using it on your file. You should write out your
    modified file using a new name and don't rename it or overwrite the
    existing file. Inspect the contents of the modified file manually until
    you are satisfied that it is correct before coding your program to
    overwrite the contents of your existing file.
    Make your changes in the strings that contain the lines from the old
    file after you have read them in but before you write them out.
    You will write out the lines using the print statement.
    If you read each line and then write it out, you needn't save it. You
    would only save it if you needed to change more than one line at a time
    or for some other reason.
    You don't need an array of arrays to modify a file. You only need one
    scalar variable to hold each line, as demonstrated by the solution
    given on your referenced web page.
    You can delete a line by not writing it to the modified file.
    You are confusing two different methods for modifying a file. One is to
    read the lines of the file into an array (not an array-of-arrays),
    modify the array, then write out the array to a modified file. The
    other method is to read one line at a time from the old file, modify
    the line if necessary, and write the line out to the file if it should
    be kept.

    Pick one method and stick with it. The first method will have less
    memory usage. The second method allows you to modify more than one line
    at a time. Use whichever method suits your purpose.

    The first method may be implemented using the Tie::File module, as
    Jürgen has recommended. However, I recommend you implement your own
    method until you understand programming in Perl better.

    See the following for more info:

    perldoc -f open
    perldoc perlop (and search for "I/O Operators")

    FYI: this newsgroup is defunct. Try comp.lang.perl.misc in the future.
    Jim Gibson, Jan 3, 2006
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.