Perlについての質問箱 36箱目

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2008/08/10(日) 16:53:38
質問者の意図と関係ないけど $a を見るとシステム利用されそうだなと感じる
953デフォルトの名無しさん:2008/08/10(日) 17:21:17
#「変数名」の話だよね?コメントの行の書き方では無いよね?
「ハンガリアン記法」<- ぐぐれ
とか書き方はあるにはあるよ。
954デフォルトの名無しさん:2008/08/10(日) 17:24:11
>>952
$aは$[や$\と同じで特殊変数だから本来の用途以外に転用するのはよくない。
955デフォルトの名無しさん:2008/08/10(日) 17:31:55
コメントの行の話じゃないのか?
「ついでに変数名も」っていう風に読み取れなくは無いけど
変数名の付け方ならぐぐれば一杯出てくるはず

あと$aって特殊変数だったのか、知らなかった
956952:2008/08/10(日) 17:33:17
なんで sort を思い浮かべたこっちにレスついたんだろう。
お題はコメント行のほうなんだと思いますよ。矢印で指定されてる箇所。
957デフォルトの名無しさん:2008/08/10(日) 17:33:19
>>924
配列変数はスカラーコンテキストにおいて個数を返す。
一般的な方法 -> shiftとか添え字とかなんか

>>934
真を返すだけなので正しいとか別に。最後なのでセミコロンは省略できる。
全角で書かくと文字コードが違います。気持ち悪いです。

>>946
strictの仕様をよく読むよろし。
あと初期化じゃなくてただの宣言でいい。

>>947
printの中とか何か問題とか意味がわからないけど、
ダブルクウォートコンテキストに置いてはデリファレンスが優先される。

958950:2008/08/10(日) 17:36:46
>>953
コメントの行の書き方です。
日本語だったら自分でも考えられるのですが英語はどうも苦手で。
variablesとかsetupとかdifineとかいろいろあるのですが
プロのみなさんの間では何が一般的なのかな〜と思って質問してみました。
959デフォルトの名無しさん:2008/08/10(日) 17:38:37
>>957

->
をかくと、こっちはただの矢印の意味で
表示させたいだけなのに、perlタンが勝手に
特殊な意味で受け取ってしまうのではないか?
と心配なのです。

デレファレンスがこの場合、可能性があると
いうことですか?
960デフォルトの名無しさん:2008/08/10(日) 17:40:22
>>950
日本語で書けばいいじゃん
961デフォルトの名無しさん:2008/08/10(日) 17:51:28
>perlタンが勝手に
Perlは特定の誰かに合わせて仕様を変えない仕様で、調べてもらうことを前提に作られてます。
せっかくデリファレンスという餌を与えられたのに。。。
962デフォルトの名無しさん:2008/08/10(日) 17:52:41
Perlだけじゃないけど、
文字コードの日本語まわりの処理ってなんでこんなにクソなの?
マジでいい加減にしろよ。クソ野郎。
誰の責任だよ。出てこい。一発殴らせろ。
963デフォルトの名無しさん:2008/08/10(日) 18:04:02
つ JIS , NEC , M$ , IBM。
あと、UNICODEコンソーシアムでまともな提言も出来ずに支那文字、チョン便所文字と一緒くたにされた日本のヘタレ研究者。
964デフォルトの名無しさん:2008/08/10(日) 21:03:26
>>958
h2xs -X モジュール名
で拡張モジュールの雛形を作ってくれるので、それを見てみれば?
あんまり参考にならないかもしれないけど。
(というか、>>958のような区分にはなってない)
965デフォルトの名無しさん:2008/08/10(日) 21:14:30
>>958
> 英語はどうも苦手で。
> difineとかいろいろあるのですが
なにげにワロタ
966デフォルトの名無しさん:2008/08/10(日) 23:39:31
和んだ
967デフォルトの名無しさん:2008/08/11(月) 01:02:03
和んだ
968デフォルトの名無しさん:2008/08/11(月) 02:31:44
ワンダ - モーニングショット
969デフォルトの名無しさん:2008/08/11(月) 08:15:50
>>962
英語圏でないって時点で、プログラミングのハンデがあるのは仕方ないよ。
日本人はプログラミングの本道とは外れたしょーもない部分で引っかかって生産性を損失してる部分が多すぎる。
970デフォルトの名無しさん:2008/08/11(月) 08:42:42
requireのファイルの最後に、1を書かなくても
動いたのですが、これって書かなくてもいいってこと?
971デフォルトの名無しさん:2008/08/11(月) 08:43:13
””ダブルクオーテンションの中で、
->という記号を安易に使ってもいいの?

それともだめなの?
972デフォルトの名無しさん:2008/08/11(月) 09:22:55
>>970
最後に書いた文が式でその値が真なら動くよ。

初期化の成功失敗を伝えるために積極的に値を出し分けているんじゃなければ
最後に1;と書いといたほうが安心だし余計なところに頭を使わないですむので
みんなそうする習慣になっているというだけの話です。
973デフォルトの名無しさん:2008/08/11(月) 09:30:20
>>971
安易に使うのはいかなる場合でも感心しないな。

% perl -e '$x->{foo}="hoge"; print "$x, $x->{foo}, ${x}->{foo}, ->$x->{foo}"'
HASH(0x934e880), hoge, HASH(0x934e880)->{foo}, ->hoge
974デフォルトの名無しさん:2008/08/11(月) 09:46:24
>>973
半角スペースを開ければ問題ない?

- >

みたいな。
ようはデレファレンスとして解釈されてしまうんでしょう?
こっちは矢印記号として使いたいわけですが。
975デフォルトの名無しさん:2008/08/11(月) 09:47:50
>>972
でもさ、requireで呼び出して使う場合もあるし、
呼び出さないで単独でファイル単体で実行させたい
場合もあるし、単独で使う場合って、ファイルの最後に
1;
を書いておいても、なんら問題はないの?
余計な記号があると心配じゃん。
976デフォルトの名無しさん:2008/08/11(月) 10:31:17
数字を読み込んで、それをキャラクターにする
プログラムを組んでみようと思って、こう書いたんだ。

use warnings;
use strict;

use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)";
use Encode;

use feature qw( :5.10 );
$|=1;
#----------------------------------
my $a;


for ($a=0;$a<=100;$a=$a+1){

say $a." ".chr($a);
}
977デフォルトの名無しさん:2008/08/11(月) 10:32:22
そしたら、DOSプロンプトに出力するバージョンは、うまく動いた。
そんで、こんどは、テキストファイルに出力してみようと思ったのさ。
そんで、次のコードを書いた。

use warnings;
use strict;

use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)";
use Encode;

use feature qw( :5.10 );
$|=1;
#----------------------------------
my $a;
open (FILE,'> abc.txt') or die "$!";

for ($a=0;$a<=100;$a=$a+1){
say FILE $a." ".chr($a);
}

close (FILE);
978デフォルトの名無しさん:2008/08/11(月) 10:33:39
そんで、できあがったabc.txtを、サクラエディタで、
utf-8で開いてみた。そしたら、文字番号0〜32までが、
空白で、表示されてないのさ。

一方、DOSプロンプトに出したときは、文字番号0〜32も
変な記号でいろいろ出ていたのに。なんで?
979デフォルトの名無しさん:2008/08/11(月) 10:51:54
また新しいゲームのアイデア思いついたよ

配列Aを出して、mapで変換して、配列Bを表示する。
そんで、変換のロジックはブラックボックスにしておいて、
AとBだけを見せて、変換ロジックを推定する。

あたれば、得点。こういうゲーム。
980デフォルトの名無しさん:2008/08/11(月) 11:38:20
Perlの初心者です。教えてください。文字コードの問題です。

# test for ActivePerl 5.8.8
use LWP;
my $m =LWP::UserAgent->new;
my $w = $m->get("http://www.2ch.net/");
print $w->content;

を実行すると表示できます。2chのcharsetはsjisで$w->contentは
sjisを返します。次にuse encoding文を付け加えます。

# test for ActivePerl 5.8.8
use encoding 'cp932';
use LWP;
my $m = LWP::UserAgent->new;
my $w = $m->get("http://www.2ch.net/");
print $w->content;

これは文字化けして表示できません(エラーも起こします)
$w->contentは相変わらずsjisを返してきます。
print文はsjisにもかかわらずutf8からsjisへ変換しようとして
エラーを起こすようです。

質問は
$w->contentがutf8を返すようにできないかというものです。
言い換えるとLWPのオブジェクトの文字列の保持をutf8とするように
設定できないかということです。
よろしくお願いします
981デフォルトの名無しさん:2008/08/11(月) 12:08:26
>>980
conentはバイト列という決まりなのだが、君のような人のためにdecoded_contentというのが用意されている。
perldoc HTTP::Message参照
982デフォルトの名無しさん:2008/08/11(月) 12:36:31
>>978
>できあがったabc.txtを、サクラエディタで、
>utf-8で開いてみた。

サクラエディタって使ったことないけど、ファイル開くたびに
文字コード指定するの?それなら、sjis で開かないとダメじゃん。
utf-8にしたいなら、
binmode STDOUT => ":encoding(cp932)";
の行を削除。
983デフォルトの名無しさん:2008/08/11(月) 12:55:49
>>981
うまくいきました。ありがとうございます。

# test for ActivePerl 5.8.8
use Encode;
use LWP;
my $m =LWP::UserAgent->new;
my $w = $m->get("http://www.2ch.net/");
print encode('cp932', $w->decoded_content);
984デフォルトの名無しさん:2008/08/11(月) 12:55:54
\x00-\x1F と \x20 の表示に CP932 やら UTF-8 は関係あるのか
985デフォルトの名無しさん:2008/08/11(月) 18:33:14
>>982
なんで?
Windows上で、
perlから、txtファイルに出力すると、
絶対シフトJISになっちゃうの?

だから、シフトJISと指定して読み込まないと
だめなの?

binmode STDOUT => ":encoding(cp932)";

↑もしかして、これって、シフトJISで出力する、って意味だったの?
だからDOS窓では問題なく出力できてたの?
986デフォルトの名無しさん:2008/08/11(月) 18:39:01
なんか、ここって質問の半分くらいが文字コードの問題だなw
987デフォルトの名無しさん:2008/08/11(月) 18:53:33
全部同じ奴じゃねえの。文体的に
988デフォルトの名無しさん:2008/08/11(月) 19:04:23
>>4入り 5.10 の人とほかの人は区別したい。いちおう。
989デフォルトの名無しさん:2008/08/11(月) 19:09:37
次スレの旬が近そうなので逝ってきます。
990デフォルトの名無しさん:2008/08/11(月) 19:12:46
>>978
サクラエディタが制御文字を表示してないだけでないの?
991デフォルトの名無しさん:2008/08/11(月) 19:12:52
次スレでございます。
Perlについての質問箱 37箱目
http://pc11.2ch.net/test/read.cgi/tech/1218449440/
992デフォルトの名無しさん:2008/08/11(月) 19:35:15
            __、
     ,r´⌒ヽ,⌒ヽ,ヽ
   (⌒)、   .人  λ\、 ._____
    \. \    、 ヽ./ ー  ー\
     |\ \    ヽ./ ( ●) ( ●)
     |  \  \ /     (__人__) \  はいはい、どーもすみませんでした
     |.   \   |       ` ⌒´   |
  .   |.   |.\_ノ\            /
  .   |.   |   |   \______/
  .   |   )  .|     . . ̄ ̄
  .   |   |  .|
     |   |.|  .|
  .   |  | .| .|
     /  / / ヽ,
    (__ノ  ヽ、__つ
993デフォルトの名無しさん:2008/08/11(月) 19:35:48
              コロコロー (((●
  猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
  猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
 猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー

   ●))) コロコロー
  ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫
   ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫
   ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫

                コロコロー (((●
  猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
  猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
 猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
994デフォルトの名無しさん:2008/08/11(月) 19:36:22
いきなり氏ねって、どういう事ですか?君には社会の常識がないのですか?
普通は、『あのう、すいませんけれども氏んでくれませんか?』とか
『あなたはには、氏ぬという選択肢もありますよ』とか言うものですよ、
あなたみたいに最初から喧嘩腰だと、
言われた方は『じゃぁ氏んでみようかな』とかいう気持ちがなくなるものです。
まずは、親切丁寧に人に氏んでと頼むべきだと思いますよ。
そこから、人の輪と協調が生まれ、『よーし氏んでみるか』とか
という気持ちが生まれるわけです。
995デフォルトの名無しさん:2008/08/11(月) 19:36:55
                /\___/ヽ
               /'''''' u ゚ '''''':::u:\
              |(一),゚  u 、(一)、゚.|
              | 。 ,,ノ(、_, )ヽ、,, u.:::|  最新型の扇風機って暑いんだな
     〃 ̄ヽ 〜   | u ` -=ニ=- ' .:。::|      なんか、オレンジ色に光ってるし
   r'-'|.|  O |  〜    \_゚`ニニ´ _::::/
   `'ーヾ、_ノ 〜    /  ゚ u 。 \
      | ,|         |゚ / ・   ・ ヽ |
      | ,|         | | 。 ゚ u |゚ |
      | ,|         \\=====/ノ
   ,-/ ̄|、          (m)  (m)
   ー---‐'         (__)(__)
996デフォルトの名無しさん:2008/08/11(月) 19:37:29
    \ ポーニョ ポニョ / |\
          ポニョ.    | |\
 ウ…ウーン… ∧_∧   | |  \
   ___  _∩∀゚∩)  | |   |
   | __ ( ;´д`) ̄|ヽ) | |   |
   |\⌒⌒⌒⌒⌒⌒\  \|    |
   \ \          \  \  |
     \ \          \  \|
      \ \|⌒⌒⌒⌒⌒⌒⌒|
        \ |_______|


↓翌日の頭の中

ポーニョポーニョポニョ::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::ポーニョ:::::::::::::::::::::::::::
:::::::::::::::(>'A`)> ウワァァァァ :::::::
:::::::::::::::( へへ :::::::::::::::::::::::::::::::::
:ポーニョ:::::::::::::::::::::::::ポーニョ::::::::::::::::::::::::::
::::::ポーニョ:::::::::::::::::::::::::::::::::::::::::::::::::::
997デフォルトの名無しさん:2008/08/11(月) 21:03:31
おちんちんのエラの部分に、ちいさいギザギザがあるんですが、
これって何かの病気ですか?
医者に診せたほうがいいでしょうか?
998デフォルトの名無しさん:2008/08/11(月) 21:12:58
教えて良かったと思えるのは幸せなのだと噛みしめる今日この頃。だから、

>>997 は女医に診せてサマリ提出汁。
999 ◆TWARamEjuA :2008/08/11(月) 21:14:32
あづいよう
1000デフォルトの名無しさん:2008/08/11(月) 21:50:44
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。