Beefy Boxes and Bandwidth Generously Provided by pair Networks Cowboy Neal with Hat
go ahead... be a heretic
 
PerlMonks  

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

by quester (Vicar)
on Dec 10, 2012 at 07:19 UTC ( #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."


Comment on Re: error in printing output of Data::Dumper to file
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
Node Status?
node history
Node Type: note [id://1008060]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (16)
As of 2014-04-24 13:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (566 votes), past polls