Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: error in printing output of Data::Dumper to file

by quester (Vicar)
on Dec 10, 2012 at 07:19 UTC ( [id://1008060]=note: print w/replies, xml ) Need Help??


in reply to error in printing output of Data::Dumper to file

It works for me (perl 5.14.3, Fedora 17 Linux.) The script should die if there is a permission problem preventing you from creating or writing to the file, so... have you double checked that it actually reaches the open and print statements in your second snippet?


It's often difficult to debug a script when only sections of it are posted; the bug is often a subtle interaction between the parts of the script that you are already suspicious of and the ones that are already known to be "correct."

Replies are listed 'Best First'.
Re^2: error in printing output of Data::Dumper to file
by prlusr (Initiate) on Dec 10, 2012 at 07:57 UTC
    Yes, the code is reaching that point. When i am debugging the code it is giving me output like below
    C:\>perl -d 9.pl Loading DB routines from perl5db.pl version 1.3 Editor support available. Enter h or `h h' for help, or `perldoc perldebug' for more help. main::(9.pl:11): my %myhash1 = (); DB<1> n main::(9.pl:12): my %myhash2 = (); DB<1> main::(9.pl:13): my $key; DB<1> main::(9.pl:14): my $val; DB<1> main::(9.pl:16): my $xml = new XML::Simple; DB<1> main::(9.pl:18): my $data1 = $xml->XMLin("sample.xml"); DB<1> main::(9.pl:20): my $data2 = $xml->XMLin("sample2.xml"); DB<1> main::(9.pl:25): open FH5, ">>tagfile1" or die "error in readin +g..debug 1 "; DB<1> main::(9.pl:29): print FH5 Dumper($data1) or die $!; DB<1> main::(9.pl:32): while (<FH5>) main::(9.pl:33): { DB<1> main::(9.pl:43): close FH5;
    I am using perl v5.10.0 on windows.

      Oh. The file is being written to, but you can't read it because it was opened for append but not read (mode ">>" instead of "+>>"), and also because, due again to the append access, it is already positioned to the end of file when you do the first read.

      If you change the open mode from ">>" to "+>>", and insert   seek FH5, 0, 0 or die "Seek failed, $!"; just before  while (<FH5>) it should work.

      Another way would be to close FH5 and then reopen it for input (mode "<") just before trying to read it.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (7)
As of 2024-03-28 08:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found