Update: See
BrowserUK's response for handling file types. However you will still need to work in logic to figure out is it is a server.
Note: All of what is below is using
system(), there may be modules out there but I don't know them off the top of my head.
First, you can parse for <drive_letter>:\ to find out if it is a local absolute path.Second, Parse for ^\\<blah> to tell you if there is a UNC path being used.File::Find will be able to tell you if it is a local file.If none of the above is true, try system("net view \\$firstvar");, this will tell you if it is a REACHABLE machinePoint to note, the difference between a regular share and \\server\d$ is only the fact that d$ is a hidden administrative share. They are both still shares.
There will be more error checking you will want to do (such as checking for reachable path if the ^\\ parse is successful), and possibly more corner cases, but this should get you going in the right direction.
"Nothing is sure but death and taxes" I say combine the two and its death to all taxes!