|
>>1841 ふくし >>1843 68user >>1844 ふじ つぎのようにすれば文句をいわれませんでした。 #!/usr/bin/perl -w my ($login, $pass, $uid, $gid) = getpwnam('root'); print "$login:(password):$uid:$gid\n"; exit; my をとったものと、較べてください。 ちなみに動作環境は perl 5.00503 ないしは perl 5.6.0 です。 |
|
>>1845 rosegarden この他にも #!/usr/bin/perl -w use vars qw($login $pass $uid $gid); ($login, $pass, $uid, $gid) = getpwnam('root'); print "$login:(password):$uid:$gid\n"; exit; などと、use vars で宣言しておけば文句を言われないようです。 詳しくは、perldoc vars してみてください。 |
|
にゃるほど、 ふじさん> リスト要素にすれば undef を左辺に持っていけるんですね。 undef = 3; だと怒られますけどね。(当たり前) これは言いたいことを強烈に表現できているような気がします。 rosegarden さん> my や use vars を使った方法もいいですね。 この問題がよく出てくるのはファイルの stat を受けるときなんですが、 こういう意味のある変数のときは変数名をつけておいて使わない (そのうち使うかもしれないので) というのが便利なので、使わせていただきます。 みなさんどうもありがとうございました。勉強になるー |
|
いつも拝見しながら勉強させていただいています。 Perlを使ったソケット通信について質問があります。 HTTPSサーバに対してのソケット通信です。 http://X68000.startshop.co.jp/~68user/net/http-2.html にあるように、通常のソケット通信はできたのですが、 相手がHTTPSになるとヘッダの都合か、まったくうまくいきません。 たとえば、 自分のサーバ →POST→ 相手のCGIのあるサーバ(https) ↓ ブラウザ上にデータを表示 ← 相手が出力したデータを取得 このようなイメージです。 通常のHTTPでのソケット通信の場合、出力するヘッダは、 "POST /sample.cgi HTTP/1.0\r\n" "\r\n(空行)" "(POSTで送信するデータ群)" このような感じだと思うのですが、HTTPS相手だと まったく受け付けてくれません・・・。 これってSSLを相手が利用している以上、不可能なことなのでしょうか? 皆様の知識と知恵を貸してください、お願いします。 |
|
>>1848 d-jiro > このような感じだと思うのですが、HTTPS相手だと > まったく受け付けてくれません・・・。 としたいなら、自前で相手サーバのポート 443 (https の ポート番号) に繋げて、自前でデータを暗号化してから ソケットに送り、受け取ったデータは復号化する必要が あります。これを全部やるのはとてもとても面倒なので、 モジュールを使いましょう。 まず、OpenSSL (http://www.openssl.org) をインストール してください。で、 http://www.cpan.org/modules/by-module/Net/ から Crypt-SSLeay モジュールを入れて下さい。これは LWP を 使うことを前提としたもののようです。 あるいは、Crypt-SSLeay モジュールの代わりに Net::SSLeay というモジュールもあり、socket like に使えますが、現在は 保守されていないのかもしれません。 # http://www.cpan.org/modules/by-module/Net/Crypt-SSLeay-0.23.readme # http://www.cpan.org/modules/by-module/Net/Net_SSLeay.pm-1.05.readme なお、どちらも使ったことがないので、上に書いたことは 全て想像です。成功したか失敗したか結果を教えて下さい。 >>1844 ふじ そうか、undef っちゅうのがありましたね…。 >>1846 rosegarden これとは逆に、use vars すると warning が出なくなって 困ったことがあります (そのときは warning を出してほしかった)。 |
|
whoisのプログラムをプログラムソースを探しているのですが、 どちらにあるかご存知ありませんか? できればperlがいいのですが。 よろしくお願いいたします。 |