It's not really OS dependent so much as shell dependent. Windows' "command.exe" or "cmd.exe" uses double-quotes as string delimiters, whereas most other shells use double-quotes as an interpolating delimiter and single-quotes as non-interpolating. On those shells, you'd almost always want to use single-quotes with a Perl one-liner so something like $var isn't interpreted by the shell itself, as it would be in double-quotes. With Windows, you have to use double-quotes because that's all it recognizes, so you'd need to switch any quote marks inside those to single quotes. Or just use bash with Cygwin.