Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re^2: Tie::File Write Problem

by packetstormer (Monk)
on Nov 17, 2011 at 19:32 UTC ( #938673=note: print w/ replies, xml ) Need Help??

in reply to Re: Tie::File Write Problem
in thread Tie::File Write Problem

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

Comment on Re^2: Tie::File Write Problem
Download Code
Re^3: Tie::File Write Problem
by toolic (Chancellor) on Nov 17, 2011 at 19:57 UTC
    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);
Re^3: Tie::File Write Problem
by jethro (Monsignor) on Nov 17, 2011 at 23:35 UTC

    @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?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (8)
As of 2015-04-01 21:59 GMT
Find Nodes?
    Voting Booth?

    Who makes your decisions?

    Results (50 votes), past polls