winxp/server 2k3 跑 ruby2.x 的一个简单粗暴的修改就是把导入表里面的这个名字改了,看改成 localtime64_s 还是 mktime64_s 还是_gmtime32_s 还是啥的。 现在我手上没有 XP 的电脑了,之前改过一个时区也不一样。
最简单粗暴的改法就是用二进制编辑器打开 msvcrt-ruby200.dll 找_gmtime64_s\0,记得备份之前的。记得改过之后的函数名后面有一个\0. win2k3 应该可以试试,最好是打开 msvcrt.dll 确认一下 (exescope)
$1, $2等等的其实更像是局部变量……说是线程全局不同只是局部作用域不同的一种情况
考虑下面的代码是无法读到$1的,且每个局部作用域的$1啥的也不一样
def process
p $1 #不能正常工作
end
#............
str =~ regexp
p $1 #普通情况,只要正确匹配了有分组1就行
process
#...........
可以考虑传$~给 process