Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^3: Trouble iterating through a hash

by Marshall (Canon)
on Mar 09, 2017 at 04:44 UTC ( [id://1183984]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Trouble iterating through a hash
in thread Trouble iterating through a hash

Error checking is actually taken care of by "use autodie;". I personally don't like to do that because often a die message can explain to the user the context of what is happening in addition to the actual file that couldn't be opened, e.g. "can't open configuration file: $file_name". This sort of thing becomes more important if there is a GUI involved as opposed to a command line.

Also other "tweaking" of the die message can be done. There is a difference between  die "xyzzy" and die "xyzzy\n" This controls whether or not the user gets the Perl line of code number. Sometimes, it can confuse users if too much info is given with terminology that they don't understand.

###### with auto die ###### open XXX, '<', "XXX"; #Can't open 'XXX' for reading: 'No such file or directory' at C:\Proje +cts_Perl\testing\die_messasges.pl line 7 ###### without auto die ### # trailing \n in the die message suppresses the line number. open XXX, '<', "XXX" or die "couldn't open Config file, XXX!\n"; # couldn't open Config file, XXX! open XXX, '<', "XXX" or die "couldn't open XX file!"; #couldn't open XX file! at C:\Projects_Perl\testing\die_messasges.pl l +ine 5. open XXX, '<', "XXX" or die "couldn't open config file XX!, $!"; # couldn't open config file XX!, No such file or directory at C:\Proje +cts_Perl\testing\die_messasges.pl line 6.
update:
I didn't show every possibility.
Some points: 1)autodie is pretty cool, especially for short quick scripts. But, there is no context information. In a complex app, it may not be apparent to the user what this file is about. 2) Add or not the trailing "\n" to a die message to control reporting of Perl line number. 3) Often $! is just confusing noise depending upon the App. I use all of the above options in one situation or another. I can't say: "always do it way #X".

Replies are listed 'Best First'.
Re^4: Trouble iterating through a hash
by NetWallah (Canon) on Mar 09, 2017 at 06:59 UTC
    Nice (++). I did not realize autodie was so clear about the file name , and error message - will use that on my next project. Thanks.

            ...it is unhealthy to remain near things that are in the process of blowing up.     man page for WARP, by Larry Wall

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (5)
As of 2024-03-29 07:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found