68user's page 掲示板

Prev< No. 970〜986> Next  [最新発言に戻る] [過去ログ一覧]
No. 970 # ユウヤ 2000/07/09 (日) 22:17:58
携帯電話に対してこちらの電話番号を表示しないためにはどうすればいいですか?

No. 971 # mm 2000/07/10 (月) 18:30:29
perlでのサブルーチンの質問です。
お願いします。

#!/usr/local/bin/perl

$Z = 1;
&abc();
print "$Z$Y";

sub abc{
        &A();
        &B();
        &C();
}
sub A{
        if($Z == 1){
                $Z = $Z + 1;
                &C();
        }
}
sub B{
        $Z = $Z + 5 ;
}
sub C{
        $Y = "!";
}

こんなカンジなのですが結果を"2!"になるようにしたいのですが
どうすればよろしいでしょうか?
このまま実行すると"7!"になってしまいます。
教えてください。

No. 972 # 68user 2000/07/10 (月) 23:12:29
@yujiさん
> 現在、FreeBSD 2.2.8-RELEASEのカーネルなどをPentium3に最適化させたいと
> 考えているのですが
すみませんが、http://www.jp.FreeBSD.org/search.html#doc
キーワード pgcc で検索する、以上の情報はわかりません。

cvsweb で ports/lang/pgcc を見ると、2.2.8 時代は (pgcc 側の)
gcc->egcs の切り替え時期なようで、その時代の gcc 対応 pgcc は
ないと思います。最新の egcs を入れて pgcc パッチを当てるのは
ダメかなぁ。いろんなところではまりそうですけど。
# あ、最近のは a.out 形式吐けないんだっけ。

@STさん
> これからはもっと慎重に作業をしなければ……。
telnet 2つ開いて、片方はつなぎっぱなしにして いつでも
/etc/master.passwd を修正できるようにしておくとよかったですね。

@mmさん
# biglobe な mm さんとは別の mm さんですか?
> 結果を"2!"になるようにしたいのですがどうすればよろしいでしょうか?
    sub B{
        $Z = $Z + 5 ;
    }
の部分で $Z==7 になってほしい、でも &B から戻ると $Z==2 としたい、
ということなら、呼び出し側で &B($Z) として引数を渡して
    sub B{
        my ($abc)=@_;
        $abc = $abc + 5 ;
    }
とか ($abc は $Z としても同じ)、単順に変数名を変えて
    sub B{
        $X = $Z + 5 ;
    }
とか、って感じでいいですか。

望んでる答えじゃないかもしれないけど、なぜ 2! にしたいのか、
&A と &B ではどういう違いがあるのかを説明してもらわないと、
これ以上はなんとも言えません。

No. 973 # mm@biglobe 2000/07/11 (火) 01:23:29
私にも意味が分からないので、別人かと思われます。

ひょっとして、sub A {...} 中で &C(); を呼び出したら、
sub abc{...} 中の &C(); に帰って来る、と誤解されてるとか…?
# goto &NAME に関係あるのかとも思ったけど…

No. 974 # mm 2000/07/11 (火) 09:23:05
># biglobe な mm さんとは別の mm さんですか?
mm@biglobeさん、失礼しました。

説明不足ですみませんでした。

sub A の処理で $Z == 1 の場合sub C へ行きたいのです。
その後、sub B へは行かずに処理を終了させたいのですが、、、

No. 975 # Netboy [E-mail] 2000/07/11 (火) 17:29:50
もしかして

#!/usr/local/bin/perl

$Z=1;&abc;print "$Z$Y";

sub abc{ if (!&A){ &B; } &C; }
sub A{ if ($Z==1){ $Z++;return 1; } 0; }
sub B{ $Z+=5; }
sub C{ $Y="!"; }

な感じですか...? 文章のままだと

sub abc{ if (!&A){ &B;&C; }}
sub A{ if ($Z==1){ $Z++;&C;return 1; } 0; }

な感じです.関数の戻り値を使わないなら

sub abc{ &A; if ($Z!=2){ &B; } &C; }
sub A{ if ($Z==1){ $Z++; }}

延々と続きそうですね.こんな話題じゃ無さそうな気も...

No. 976 # mm@biglobe 2000/07/13 (木) 01:27:06
あれ?mmさんの反応がないなぁ…
Netboyさんの回答で、出尽くしてると思うんだけど。

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 977 # (6)(8)user 2000/07/13 (木) 01:32:32
そーいや、名前に機種依存文字を入れると、何かが起こったっけ。
多分まだ なおしてなかったなぁ。
# 現在機種依存文字が見えない環境なので、勘で入力。

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 978 # 68user 2000/07/13 (木) 01:41:20
そうか、名前の欄が
    <INPUT ... VALUE="<FONT COLOR="red">(6)(8)</FONT>user">
となってしまうんだった。今度直そう。

ところで、LASER5 Linux 6.0 でも /etc/services は pop-3 でした。

No. 979 # has 2000/07/14 (金) 20:06:55
@68user
名前に機種依存文字入れたときの不具合、
直ったら修正部分をおしえてください。
#うちのにも同じ不具合があるってことですよね?

No. 980 # 68user 2000/07/18 (火) 00:12:35
了解。でも、ちと忙しい日が続きそうなので9月頃になるかも…。

No. 981 # 智慧 2000/07/18 (火) 22:55:44
こんばんわ。ちょっとお聞きしたいことがありまして。。。
うちの掲示板はmmさん(ここにいる人かどうかはわかりませんが)が作った掲示板を使っているんですが、
crypt関数が使えなくて削除パスとかが出てこないんです。それで、サーバ管理者に連絡しましたら、

>弊社サーバーでも、crypt関数はもちろんご利用頂けます。
>ただし、サーバーの暗号処理にMD5方式を搭載しておりますので
>MD5以外のサルト係数を使用したスクリプトでは、そのままでは動作致しません。
>(cryptはサーバーのライブラリに依存している為)
>cryptをMD5方式のサーバーでお使いになるには、salt係数をMD5の
>$1$ 固定で指定する必要がありますので、スクリプト内の
>該当部分を書き換えてご利用ください。

と教えていただきました。でもどこをどう直せばいいのかさっぱりなんです。
忙しいと言っていますけどもし時間が空きましたら、教えていただけますでしょうか。お願いします。
ちなみにhttp://whitenight.org/etc/bbs/Readme/crypt.cgiにcryptを実行するCGIがあります。
ソースはhttp://whitenight.org/etc/bbs/Readme/crypt.txtにありますんで、どうかみてやってください。
長文すいませんでした。

No. 982 # mm@biglobe 2000/07/19 (水) 00:39:40
あっ、crypt.cgi はMD5には対応してないですね(^^;
MD5を使える環境にないので、詳しくは、68userさんのご助言を頂きたいのですが、
とりあえず、ソースの以下の行を削除して、

     if ( $salt !~ m%^[\./0-9A-Z]{2}$%i ) {
         print "<H2>エラー</H2>\n";
         print "SALTが不正です\n";
         exit(0);
     }

SALTの入力欄の2文字の前に「$1$」を挿入して実行してみて頂けます?

No. 983 # 68user 2000/07/19 (水) 00:53:19
まず OS 名は何ですか?

>>(cryptはサーバーのライブラリに依存している為)
僕の知る限りでは (少なくとも FreeBSD では) 誤りです。
なんにも考えずに salt を渡せば、ライブラリ (libcrypt) の
方で DES でも MD5 でも勝手に処理してくれます。

# ただ、FreeBSD 以外の環境 (例えば Linux で MD5 な環境) だと、
# ライブラリがそこまで対応しているかどうかはよくわからんなぁ。
# 明日試してみよう。

しかし、http://whitenight.org/etc/bbs/Readme/crypt.cgi
結果が $PassWord = ''; と空になるのは謎ですね。

> print crypt( $pwd, $salt );
これを
    print crypt( $pwd, "\$1\$$salt\$" );
とするとどうですか。あるいは
    print crypt('secret','ab');
だとどうなりますか。

No. 984 # 68user 2000/07/19 (水) 00:59:14
おっと少々かぶりぎみ。

crypt.cgi は FreeBSD (MD5) 上ではうまく動きました。FreeBSD の
libcrypt では
    crypt('secret','xx')

    crypt('secret','$1$xx$hogehoge')
は同じものとして扱われるからです。

ということは、智慧さんの環境ではそうではないということで
しょうから、$1$..$ を追加すればいけるんじゃないかと思います。

No. 985 # mm@biglobe 2000/07/19 (水) 02:05:30
あっ、なるほど。(最後の $ も忘れてた)
68user さんの指示に従って対処して下さい>智慧さん

No. 986 # 智慧 2000/07/19 (水) 03:22:16
>mm@biglobeさん
>68userさん
あ、ごめんなさい。
こんなに早くお返事してもらえるとは思ってもいませんで・・・。
じゃ今から早速やってみます。
レスありがとうございました。

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