|Think about Loose Coupling|
portability / system / eleganceby skendric (Novice)
|on Dec 04, 2016 at 13:19 UTC||Need Help??|
skendric has asked for the wisdom of the Perl Monks concerning the following question:
I'm writing semi-portable code (Linux / Windows).
I use 'system' to execute an external binary ('tshark', part of the Wireshark collection).
I handle slashes like this:
The last line functions essentially as a "If this is Windows, escape the slashes in the path name", such that 'C:/Program Files/Wireshark/tshark.EXE' turns into 'C://Program Files//Wireshark//tshark.EXE'.
And then, when I actually execute tshark, I use the following:
The key 'portability' change being the escaped quotes around $tshark_binary, which aren't necessary in Linux but are needed under Windows, to dodge the: "C:\Program" is not an executable errors.
This is fine, and it works. But is there a more elegant / common way to accomplish these two tasks?--sk