68user's page 掲示板

Prev< No. 4813〜4818> Next  [最新発言に戻る] [過去ログ一覧]
No. 4813 # 68user 2007/07/20 (金) 13:03:08
>>4811 mac
pop3-client-Net::POP3.pl の
    if ( $auth_check == undef ){
は誤った書き方で、正しくは
    if ( ! defined $auth_check ){
です (以前は undef かどうかのチェック方法を誤解していたため)。

これだとどうなりますか。

No. 4814 # mac 2007/07/20 (金) 18:33:55
>>4813 68user
> if ( ! defined $auth_check ){
バッチリです。それにしてもすばやいレス、本当に有難う御座います。

No. 4815 # mac 2007/07/20 (金) 20:20:37
たいへん心苦しいのですが別のことをお聞きしてよろしいでしょうか。
HTTPクライアントのスクリプトで、Basic認証が通ったかどうか
戻り値などで判断する方法は有りますでしょうか。
いま確認中のスクリプトは以下の通りです。

#!/usr/local/bin/perl

use strict;
use HTTP::Request::Common;
use LWP::UserAgent;

my $req = POST( 'http://*****.jp/login.html');
$req->authorization_basic('ID', 'Pass');
my $ua = LWP::UserAgent->new;
my $res = $ua->request($req);

No. 4816 # 68user 2007/07/21 (土) 02:54:23
>>4815 mac
HTTP::Response の code メソッドを使えばよいと思います。

-----
#!/usr/local/bin/perl
use strict;
use HTTP::Request::Common;
use LWP::UserAgent;

my $req = POST( 'http://X68000.q-e-d.net/~68user/net/sample/http-auth/secret.html');
$req->authorization_basic('hoge', 'wrong-password');
my $ua = LWP::UserAgent->new;
my $res = $ua->request($req);
print $res->code."\n";

my $req2 = POST( 'http://X68000.q-e-d.net/~68user/net/sample/http-auth/secret.html');
$req2->authorization_basic('hoge', 'fuga');
my $ua2 = LWP::UserAgent->new;
my $res2 = $ua2->request($req2);
print $res2->code."\n";

No. 4817 # mac 2007/07/21 (土) 23:19:18
>>4816 68user
重ね重ね、有難うございました。

No. 4818 # ふくし 2007/07/24 (火) 21:20:42
>>4810 68user
さん、

そうなんですよ。use は引用符をつけてはいけないが use base だとダメ、
no strict 'refs'; だとあらゆる裸のワードを勝手にクォートするらしいです。
お騒がせしました。

Prev< No. 4813〜4818> Next  [最新発言に戻る] [過去ログ一覧]