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

Re^5: Cannot work on second file after reading first file.

by davido (Cardinal)
on Feb 28, 2014 at 17:42 UTC ( [id://1076583]=note: print w/replies, xml ) Need Help??


in reply to Re^4: Cannot work on second file after reading first file.
in thread Cannot work on second file after reading first file.

Ok, so you know the following:

  • The file opens.
  • The first line of the CSV file contains headers, as you expected.
  • The file has not reached "eof" after reading the first line (because we've now tested that).
  • The while loop never gets entered (because your "I'm inside the while loop" never prints.
  • The only way for the loop to not be entered is for my $row = $csv->getline($fh) to return a false value.
  • The documentation for Text::CSV says that 'getline' returns undef (which is false) if it fails to get and parse the line. This can happen at end of file, or in an error condition.
  • You set auto_diag in the constructor, so errors are being reported. I'm assuming you would tell us if an error was being reported, so it's probably safe to say one isn't. That only leaves "end of file" as a possible reason for you to not be entering the loop.

Some of those things we know are contradictory. They can't both be true. We can't both not be at the end of the file, and be at the end of the file. We can't both have "auto_diag" set, and have an unreported error occurring.

Is your "large script" running as the same user as your test script?


Dave

Replies are listed 'Best First'.
Re^6: Cannot work on second file after reading first file.
by sn1987a (Deacon) on Feb 28, 2014 at 18:57 UTC

    In my testing, $csv->eof did not return true even after trying a second get_line (According to the documentation is does not return true until after an attempt to read past the EOF.)

    In any event the cause was a change in global state in open_po: $/ was being set to undef. See Re: Cannot work on second file after reading first file.

      Good work.


      Dave

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others goofing around in the Monastery: (5)
As of 2024-04-19 21:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found