perl 设置cokie
时间: 2023-07-04 20:16:41 浏览: 162
要在 Perl 中设置 Cookie,可以使用 CGI 模块。以下是一个示例代码:
```perl
#!/usr/bin/perl
use CGI qw/:standard/;
# 创建一个新的 Cookie
my $cookie = cookie(-name=>'username', -value=>'JohnDoe', -expires=>'+1h');
# 输出 Cookie
print header(-cookie=>$cookie);
```
在上面的代码中,`cookie()` 函数用于创建一个新的 Cookie 对象,然后使用 `header()` 函数将 Cookie 发送到客户端浏览器。`-name` 参数用于设置 Cookie 的名称,`-value` 参数用于设置 Cookie 的值,`-expires` 参数用于设置 Cookie 的过期时间。`+1h` 表示 Cookie 将在一小时后过期。
相关问题
perl 获取Set-Cookie cookie的值
可以使用 Perl 的 HTTP::Cookies 模块来获取 Set-Cookie 中的 cookie 值。具体步骤如下:
1. 安装 HTTP::Cookies 模块:
```
cpan HTTP::Cookies
```
2. 使用 HTTP::Cookies 模块解析 Set-Cookie 头部信息:
```perl
use HTTP::Cookies;
my $cookie_jar = HTTP::Cookies->new();
$cookie_jar->extract_cookies($response);
my @cookies = $cookie_jar->as_string();
```
其中 $response 是 HTTP 响应对象,可以从中获取 Set-Cookie 头部信息。
3. 解析 Cookie 值:
```perl
my %cookie_hash;
foreach my $cookie (@cookies) {
if ($cookie =~ m/^(.*?)=(.*?);/) {
$cookie_hash{$1} = $2;
}
}
my $cookie_value = $cookie_hash{'cookie_name'};
```
其中 cookie_name 是要获取的 cookie 名称。这样就可以获取到 Set-Cookie 中指定名称的 cookie 值了。
perl Set-Cookie:UserID Set-Cookie:Password Set-Cookie:Expires Set-Cookie:Domain Set-Cookie:Path
要在 Perl 中设置多个 Cookie,可以使用 `CGI` 模块,并在 `header()` 函数中使用多个 `-cookie` 参数。例如,以下代码设置了名为 `UserID`、`Password` 的 Cookie,以及名为 `Expires`、`Domain`、`Path` 的 Cookie 属性:
```perl
#!/usr/bin/perl
use CGI qw/:standard/;
# 设置多个 Cookie 和 Cookie 属性
print header(
-cookie=>[
'UserID=XYZ',
'Password=123',
'Expires=Sat, 01-Jan-2022 00:00:00 GMT',
'Domain=.example.com',
'Path=/'
]
);
```
在上面的代码中,`-cookie` 参数是一个数组,用于设置多个 Cookie 和 Cookie 属性。`Domain` 参数用于设置可以访问 Cookie 的域名,以 `.` 开头表示可以被所有子域名访问,`Path` 参数用于设置可以访问 Cookie 的页面路径。
阅读全文