|
携帯電話に対してこちらの電話番号を表示しないためにはどうすればいいですか? |
|
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!"になってしまいます。 教えてください。 |
|
@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 ではどういう違いがあるのかを説明してもらわないと、 これ以上はなんとも言えません。 |
|
私にも意味が分からないので、別人かと思われます。 ひょっとして、sub A {...} 中で &C(); を呼び出したら、 sub abc{...} 中の &C(); に帰って来る、と誤解されてるとか…? # goto &NAME に関係あるのかとも思ったけど… |
|
># biglobe な mm さんとは別の mm さんですか? mm@biglobeさん、失礼しました。 説明不足ですみませんでした。 sub A の処理で $Z == 1 の場合sub C へ行きたいのです。 その後、sub B へは行かずに処理を終了させたいのですが、、、 |
|
もしかして #!/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++; }} 延々と続きそうですね.こんな話題じゃ無さそうな気も... |
|
あれ?mmさんの反応がないなぁ… Netboyさんの回答で、出尽くしてると思うんだけど。 |
|
そーいや、名前に機種依存文字を入れると、何かが起こったっけ。 多分まだ なおしてなかったなぁ。 # 現在機種依存文字が見えない環境なので、勘で入力。 |
|
そうか、名前の欄が <INPUT ... VALUE="<FONT COLOR="red">(6)(8)</FONT>user"> となってしまうんだった。今度直そう。 ところで、LASER5 Linux 6.0 でも /etc/services は pop-3 でした。 |
|
@68user 名前に機種依存文字入れたときの不具合、 直ったら修正部分をおしえてください。 #うちのにも同じ不具合があるってことですよね? |
|
了解。でも、ちと忙しい日が続きそうなので9月頃になるかも…。 |
|
こんばんわ。ちょっとお聞きしたいことがありまして。。。 うちの掲示板は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にありますんで、どうかみてやってください。 長文すいませんでした。 |
|
あっ、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$」を挿入して実行してみて頂けます? |
|
まず 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'); だとどうなりますか。 |
|
おっと少々かぶりぎみ。 crypt.cgi は FreeBSD (MD5) 上ではうまく動きました。FreeBSD の libcrypt では crypt('secret','xx') と crypt('secret','$1$xx$hogehoge') は同じものとして扱われるからです。 ということは、智慧さんの環境ではそうではないということで しょうから、$1$..$ を追加すればいけるんじゃないかと思います。 |
|
あっ、なるほど。(最後の $ も忘れてた) 68user さんの指示に従って対処して下さい>智慧さん |
|
>mm@biglobeさん >68userさん あ、ごめんなさい。 こんなに早くお返事してもらえるとは思ってもいませんで・・・。 じゃ今から早速やってみます。 レスありがとうございました。 |