Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Tie::File Write Problem

by toolic (Bishop)
on Nov 17, 2011 at 19:30 UTC ( #938672=note: print w/ replies, xml ) Need Help??


in reply to Tie::File Write Problem

After you tied the file to the @lines array, you never make a modification to the @lines array. See Tie::File.

tie @lines, 'Tie::File', $file or die "No file found to work with."; $lines[0] = 'foo'; # this should change the tied file


Comment on Re: Tie::File Write Problem
Download Code
Replies are listed 'Best First'.
Re^2: Tie::File Write Problem
by packetstormer (Monk) on Nov 17, 2011 at 19:32 UTC
    That's my confusion, doesn't this line change the element in the line?
    if($tmp[6] eq "6 Elm") {$tmp[6] = 'XXXXX'}
    I am splitting each line up based on the commas in the line and changing that element
      That line does not change the @lines array or the tied file. That just changes the @tmp array. Tip #4 from Basic debugging checklist:
      use Data::Dumper; print Dumper(\@tmp); print Dumper(\@lines);

      @tmp is a completely separate variable that is not tied to the file. The split copies the data. You would have to add the following inside the foreach-loop to change the file as you intented:

      $i= join(',',@tmp);

      Note that even this works only because $i actually is an alias to the data in @lines and not a copy (this is magic done by the foreach loop)

        Thanks - when I think it through it makes sense as to why it wasn't writing to the file!

        Rejoining the value back into the line works perfectly!

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (6)
As of 2015-08-01 01:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (285 votes), past polls