Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re: Modify values of tied, split lines in a file

by Marshall (Abbot)
on Oct 22, 2012 at 19:16 UTC ( #1000408=note: print w/replies, xml ) Need Help??

in reply to Modify values of tied, split lines in a file

It seems silly to create an entire new file when I could just be editing the $c variable in the input file... am I right?
I don't think so. Creating a whole new file seems the right way to do it in this case.

A file on the disk is essentially like a stream of bits. There is no way to "insert" some extra bits in that stream without re-writing all of the bits that come after that insertion. Tie::File can "hide" some of this reality from you, but the physical situation remains the same.

A database can allow the modification of a column, but the data structures are much more complex than a simple line oriented file. If you want to modify say field 4 in a .CSV file, yes re-writing the entire file is the right way to go.

There is a DBI module that handles .csv files, but again it will wind up re-writing the entire .csv file. It will cache stuff, but at the end of the day, a new file will be written.

  • Comment on Re: Modify values of tied, split lines in a file

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1000408]
[jdporter]: omg, I f love Perl!
[choroba]: say unpack 'H*', pack 'B*', $mask =~ /0b([01]+)/;
[choroba]: use C instead of H to get the decimal number
[erix]: ( no love like f love )
[choroba]: f* love

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (9)
As of 2018-02-20 16:35 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (272 votes). Check out past polls.