dポイントプレゼントキャンペーン実施中!

Perl超初心者です。
前回のテクニカルエンジニア・セキュリティの試験に以下のソースが記載されました。

sub make_sid {
my ($user_ID) = @_;
my enc_key = "4f583....";
my $sid, $salt, $sid_time;

$sid_time = now;
$sid_time =~ /..$/;

$salt = $s;
$sid = encrypt($user_ID, $salt . $enc_key);
$sid = $sid . $sid_time ;
$sid = $sid . make_hash($sid);
return $sid . $sid;
}

$sid_time =~ /..$/;

この行の意味が理解できないのです。
正規表現で、「2文字あれば真」という意味に思えるのですが、後続の処理に全く影響しないように思えます。

正規表現がまだよくわかっていないため、勘違いしているのでしょうか。

A 回答 (1件)

こんにちは



もしかして
$sid_time =~ /..$/;
のあとの
$salt = $s;
は誤りで
$salt = $&;
が正解ではありませんか
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

> $salt = $&;

おっしゃる通りです。

$saltを表示してみてわかりました。
正規表現で一致した文字列が入るのですね。

ありがとうございました。

お礼日時:2007/03/03 20:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!