所有。我对Perl模块HTTP :: Cookies有一些疑问。关于CPAN的示例如下:
$cookie_jar = HTTP::Cookies->new( file => '$ENV{\'HOME\'}/lwp_cookies.dat', autosave => 1);
根据我的理解,lwp_cookies.dat文件用于在我的本地计算机上保存cookie数据。在我的机器上,' $ ENV {\' HOME \'}'是一条空路。脚本运行良好,即使在执行后我也找不到任何名为" lwp_cookies.dat"在我的机器上。我改变了'$ ENV {\' HOME \'}' to' $ ENV {\' TMP \'}',这是我通过Perl打印验证后确实存在的路径。我仍然无法找到" lwp_cookies.dat"在我的TEMP文件夹中。我的第一个问题是HTTP :: Cookies如何使用" lwp_cookies.dat"文件。
另一方面,在我的一个系统上(这里提到的所有Windows系统),相同的代码会产生以下错误消息: 无法打开$ ENV {' HOME'} / lwp_cookies.dat:没有此类文件或目录
所以对我来说很奇怪。在我的好系统上,即使文件或路径不存在,脚本运行良好,我想这个文件是在一些临时内存上创建的;在糟糕的系统上,代码示例根本不起作用。
答案 0 :(得分:0)
如果你想让$ ENV {'HOME'}变量插入到字符串中,你需要双引号;单引号不插入变量:
`file => "$ENV{'HOME'}/lwp_cookies.dat",`