Dear Log,
So in MSWindows, there's a little "Send to" submenu you get when you right-click a file or directory icon. You can add items to that list by putting executables (usually shortcuts to exes or bats) in \windows\SendTo (altho that's a normally hidden directory, I think). So if you add a shortcut to Foo.exe or Foo.bat in that directory, and you right-click on juju.dat and select "Send To", a submenu with "Foo" appears. Click that "Foo", and the system will execute "Foo.exe juju.dat" (or "Foo.bat juju.dat" or whatever).
So in there, I have a shortcut to list.com, and a bunch of other handy programs and batch files that call Perl programs.
But there's a problem: for some incomprehensible reason, some versions of MSWindows (including mine) pass the filename as the "short" filename. So working on juju.dat will call "Foo.exe juju.dat", but if it's a long filename like "useragent.patch", the command line will be "Foo.exe USERAG~1.PAT". That's fine, because most programs seem to turn the shortname into the longname. But some don't -- so when I select "Send To: CoolEdit", I get CoolEdit opening files by their shortname -- things like "NAVAJO~4.MP3" instead of something helpful like "Navajo_fricative_352.mp3".
So ActiveState perl comes to the rescue, via this two-line .BAT file:
@echo off
perl -e "exec 'C:\Program Files\Cool2000\cool2000.exe', chr(34).Win32::GetLongPathName(scalar Win32::GetFullPathName($ARGV[0])).chr(34)" %1
I just put that batch file wherever, then put a shortcut to it in the SendTo directory (and also then set the shortcut attributes to things like: start always an minimized, close on exit, etc).
Similarly, when I want to open an RTF file in wordpad instead of in the much more bloated MSWord, I open it via:
@echo off
perl -e "exec 'write.exe', chr(34).Win32::GetLongPathName(scalar Win32::GetFullPathName($ARGV[0])).chr(34)" %1