http://www.perlmonks.org?node_id=345008


in reply to Detecting read errors whilst reading from a network drive

In general yes you'll get an error. The error will be pretty much similar to the one if you had a read error on a local drive. You should try using  or die $!; if you want the reasons for the error to be output. At least then your 'die' is a little informative.

If you want the bells and whistles version you could drop the below into your code and call it with dying($!) instead. If you don't want the bells remove the 'sound' related lines I appended with ##>> and if you don't want the error message brutally forced to the front of all your other applications remove the 'win32Util' lines that I appended with ##%%

Happy travels! :-)
## put into the top of your main code ## Show fatal error dialog sub dying { my ($error) = @_; use Tk; use Win32::Sound; ##>> use Win32Util; ##%% if (!$error) { $error = "(none given)"; } my $text; $text .= "\n\nError:\n\n$error"; my $box = new MainWindow(-title => "Error", -bg => 'yellow', -bd => 4, -relief => 'ridge'); $box->overrideredirect(1); my $label = $box->Label( -textvariable=> \$text, -bg=> 'yellow', )->pack(-fill=>'both', -padx => 40, ); Win32::Sound::Play('SystemExclamation'); ##>> my $ok = $box->Button(-text => "OK", -command => [ sub{print STDOUT "User selected 'OK' + on error message\n"; $box->destroy; exit; } ] )->pack(-padx => 20, -pady => 20 ); $box->withdraw; $box->Popup; Win32Util::keep_on_top($box, 1); ##%% MainLoop; }

Dean
The Funkster of Mirth
Programming these days takes more than a lone avenger with a compiler. - sam
RFC1149: A Standard for the Transmission of IP Datagrams on Avian Carriers