I realize I don't have to escape a \ in a config file, but it gets messy converting it back and forth when writing it to and reading it from the config file. In other words,
- if I read in the value C:\filename from a config file, I have to add another \ when using it as $filename = "C:\\filename", and
- when writing the value "C:\\filename" back to the config file, I need to take out the extra \ again.
This, to me, adds extra bulk to the application and makes it less maintainable and robust, e.g. easy to break due to typos.
| [reply] [d/l] [select] |
| [reply] |
Well, I put together some sample code, and OK, it reads a pathname with single slashes, and seems to run it ok, except for a 'Can't spawn "filename-here" No error" after executing the command.
What I was getting at was that, since so many of the docs for Win32 modules have double slashes instead of single slashes, if I were to follow that convention, I'd have to convert back and forth between single and double slashes. An example, taken from from the Win32::AdminMisc FAQ:
Win32::AdminMisc::ComputerAliasAdd( '\\\\Server1', 'fred' );
and another example from the Win32::FileOp page:
Substed 'A:' => ('','Floppy0')
Substed 'B:' => undef
Substed 'C:' => ('','Harddisk0\Partition1')
Substed 'H:' => ('\\\\servername\homes\username','UNC')
# set by subst H: \\servername\homes\username
Substed 'S:' => ('\\\\servername\servis','LanmanRedirector')
# set by net use S: \\servername\servis
Substed 'X:' => ()
# not mapped to anything
You will notice that these, and other cases, have four slashes, not two, at the beginning of a UNC path.
So, basically, I'm worried that somewhere along the line,
I'll get the two mixed up. A potential ramification here is that the config file could be written with four slashes and not two for a UNC path. Of course, there are other bugs that could pop up, too...
| [reply] [d/l] [select] |
You shouldn't need to quote \ in config files
well, it depends on the format of the configuration file. Some use the backslash as a way to introduce special sequences and characters (for instance Java property files). | [reply] |