Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re: Spreadsheet::WriteExcel write failure

by rdfield (Priest)
on Jan 11, 2005 at 11:39 UTC ( #421247=note: print w/replies, xml ) Need Help??

in reply to Spreadsheet::WriteExcel write failure

The code works OK if you remove the  or die $! from the line inside the eval - the successful return code appears to be 0 causing the die to be evaluated.


Replies are listed 'Best First'.
Re^2: Spreadsheet::WriteExcel write failure
by adolpht (Novice) on Jan 11, 2005 at 12:36 UTC
    Hi John and rdfield,
    write returns 0 if successful so of course my code will fail,... if write is successful.
    $! being set to "No such file or directory" is an intersting red herring
    Thanks for the feedback guys

      The $! being set like that is often a result of the searching through @INC for a file to be used or required.


        Oh ok... thanks for the info.
      A couple of things to note: most modules do not set the variable $! on failure. For example, DBI sets the variable $DBI::errstr for class method errors, and $dbh->errstr for errors concerning a specific database handle. Also, you really have to look at the docs for each module to determine whether a particular method returning undef or false means that the method failed. Generally this will only be true for methods whose return value is specified to have a certain meaning. Spreadsheet::WriteExcel's write method appears not to be one of them. Finally, you have to be careful because unlike $@, $! is not guaranteed to contain a blank string or other false value when no error has occurred, so its value is essentially unpredictable in those circumstances. See perlvar for details.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (2)
As of 2021-04-15 02:00 GMT
Find Nodes?
    Voting Booth?

    No recent polls found