68user's page 掲示板

Prev< No. 1843〜1848> Next  [最新発言に戻る] [過去ログ一覧]
No. 1843 # 68user 2001/03/21 (水) 23:30:56
>>1841 ふくし
    ($dummy, $dummy, $dummy, $num1, $num2) = (0,1,2,3,4,5);
と、一度に複数回 $dummy を使えば
    used only once: possible typo
の warning は抑止できます。あと、
    ($num1, $num2, $num3) = (split(/ /))[1,5,7];
という手もありますが、可読性が低下しますね。

本質的には 「1番目と5番めと7番目を使いたい」という
使い方をせずに
    $foo = $o->getFoo;
    $bar = $o->getBar;
    $baz = $o->getBaz;
などと書くように努めるべきだと思いますが、全ての場面で
それができるわけでもなく、悩ましい限りです。

No. 1844 # ふじ [URL] 2001/03/22 (木) 02:40:55
はじめまして。

いきなりですが、
>これを言われないような /dev/nul みたいな変数ってないんでしょうか。
(undef, undef, undef, $num1, $num2)=(0,1,2,3,4);

こんなのでどうですか?

No. 1845 # rosegarden 2001/03/22 (木) 03:37:21
>>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 です。

No. 1846 # rosegarden 2001/03/22 (木) 06:15:44
>>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 してみてください。

No. 1847 # ふくし 2001/03/22 (木) 10:09:46
にゃるほど、

ふじさん>
リスト要素にすれば undef を左辺に持っていけるんですね。
undef = 3; だと怒られますけどね。(当たり前)
これは言いたいことを強烈に表現できているような気がします。

rosegarden さん>
my や use vars を使った方法もいいですね。
この問題がよく出てくるのはファイルの stat を受けるときなんですが、
こういう意味のある変数のときは変数名をつけておいて使わない
(そのうち使うかもしれないので)
というのが便利なので、使わせていただきます。

みなさんどうもありがとうございました。勉強になるー

No. 1848 # d-jiro 2001/03/22 (木) 18:54:15
いつも拝見しながら勉強させていただいています。
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を相手が利用している以上、不可能なことなのでしょうか?
皆様の知識と知恵を貸してください、お願いします。

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