программистское, мимоходом
Apr. 12th, 2005 03:56 pmНесколько дней назад я провёл три часа в отладчике, ползая по коду отладочной версии перла под Windows XP, и всё из-за того, что под Windows, оказывается, если в cmd.exe написать
set foo="bar"
то значение переменной среды foo будет не bar, а "bar".
Из-за этого одна из стандартных возможностей Перла, опирающаяся на правильное определение переменной среды, у меня не работала. И я думал, что это из-за какого-то бага в Перле под Win32, и ползал по его исходникам с редактором в одной руке и отладчиком в другой.
В последнее время я всё чаще ощущаю солидарность с автором веблога Nick Hates Software.
set foo="bar"
то значение переменной среды foo будет не bar, а "bar".
Из-за этого одна из стандартных возможностей Перла, опирающаяся на правильное определение переменной среды, у меня не работала. И я думал, что это из-за какого-то бага в Перле под Win32, и ползал по его исходникам с редактором в одной руке и отладчиком в другой.
В последнее время я всё чаще ощущаю солидарность с автором веблога Nick Hates Software.
no subject
Date: 2005-04-12 01:03 pm (UTC)Больше похоже, что
Software Fucks Nick
:)
no subject
Date: 2005-04-12 01:05 pm (UTC)no subject
Date: 2005-04-12 01:07 pm (UTC)У меня там было что-то вроде
set PERL5DB = "c:\some long path\somefile.pl"
no subject
Date: 2005-04-12 01:10 pm (UTC)no subject
Date: 2005-04-12 01:13 pm (UTC)no subject
Date: 2005-04-12 03:08 pm (UTC)no subject
Date: 2005-04-12 01:17 pm (UTC)Но привычка использовать эти имена насто-о-олько прилипчива...
no subject
Date: 2005-04-12 01:20 pm (UTC)Можно так быстро проверить что чему равно (в виндовом терминале):
Печатаем
set foo="bar"Потом печатаем
setи видим, что в результате
fooравняется"bar"no subject
Date: 2005-04-12 01:22 pm (UTC)no subject
Date: 2005-04-12 02:11 pm (UTC)no subject
Date: 2005-04-12 03:29 pm (UTC)no subject
Date: 2005-04-12 03:32 pm (UTC)Вот сейчас попробовал
Date: 2005-04-12 03:59 pm (UTC)А в set не откидывает.
В винду перегружаться лень.
Возможно, я не точно описал условия опыта. Если написать указанные строки не в правой части присваивания переменной среды, а в качестве имени команды.
То есть если написать c:>"С:\Program Files\Far\Far", запустится Far
no subject
Date: 2005-04-12 04:01 pm (UTC)А что делает оболочка в CP/M? ;-)
То есть если написать c:>"С:\Program Files\Far\Far", запустится Far
Это да, это может быть.
no subject
Date: 2005-04-12 04:25 pm (UTC)CMD.EXE в оси и в виндах в точности одинаковый. До мелочей. Кроме того, что виндовый при запуске программ проверяет ассоциации эксплорера и поэтому может запустить .doc или .html как программу, а осевый нет.
no subject
Date: 2005-04-12 01:32 pm (UTC)no subject
Date: 2005-04-12 01:33 pm (UTC)no subject
Date: 2005-04-12 02:15 pm (UTC)Спасибо за линк, очень смешной блог.
no subject
Date: 2005-04-12 02:33 pm (UTC)no subject
Date: 2005-04-12 05:07 pm (UTC)no subject
Date: 2005-04-12 08:24 pm (UTC)set a= 7
Или даже так:
set a = 7
no subject
Date: 2005-04-13 08:40 am (UTC)