Perlは結構使えるっぽいけどどうよ?

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
いくら汚いコードでも便利だし
もうすこしPerlを見直してみないか?
CGIじゃないよ。
2デフォルトの名無しさん:2001/06/08(金) 19:11
まったく使えません

しゅうりょー

以後レスを付けないようにお願いします
付けるときは必ずsageを付けてください
3デフォルトの名無しさん:2001/06/08(金) 19:21
っつーより基礎だろ、基礎。
4 :2001/06/08(金) 20:08
ここにはPerlをやたら敵視する馬鹿がいるのでまともな議論は無理かと。
5HDK-EPRN:2001/06/08(金) 20:22
手軽に組めていい。好き。
6デフォルトの名無しさん:2001/06/08(金) 20:26
自分のとこでは一番稼働率が高い。
7デフォルトの名無しさん:2001/06/08(金) 20:34
既にPerl板があるからだと思われ>>1
8デフォルトの名無しさん:2001/06/08(金) 21:45
Perl6で加わる新機能について議論するってのはどう?
http://www.perl.org/perl6/
9デフォルトの名無しさん:2001/06/08(金) 22:05
http://yetanother.org/damian/talks/Perl6.pdf
これのP12にあるこの文でマジ?

<quote>
Offers the possibility to re-examine Perl syntax.
Perl6 could allow programmers to write Perl
programs in multiple syntaxes, such as Python,
JavaScript and Perl5 instead of the Perl6 syntax.
</quote>
10shige:2001/06/08(金) 22:54
>>1
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
11デフォルトの名無しさん:2001/06/08(金) 22:56
>>1
基地害はほっといて↓でやるのがいいんじゃないか?
http://corn.2ch.net/test/read.cgi?bbs=php&key=991313362
12デフォルトの名無しさん:2001/06/08(金) 23:03
>>5
言うまでもない(w)ことだけど、
手軽というならrubyだって手軽なわけで、
同じ手軽度で汚さを忘れられるなら
rubyのほうがいい、というあっさりした結論が出ると思われ。
13shige:2001/06/08(金) 23:13
単純な頭を持つと幸せだな。(嘲笑
14Perl信者:2001/06/08(金) 23:16
「プログラマ次第で汚くも美しくもにもなる」
ってのがいいのよ(w
15デフォルトの名無しさん:2001/06/08(金) 23:18
>>13
ねじれた視野を持つと社会に適応できなくてかわいそうだな。
犯罪犯すなよ。
16デフォルトの名無しさん:2001/06/08(金) 23:19
あまりにもヘタレCGIスクリプトが多すぎるな。
1716:2001/06/08(金) 23:19
すまん。上げても太。
18shige:2001/06/08(金) 23:21
          _人
       ノ⌒ 丿
    _/   ::(
   /     :::::::\
   (     :::::::;;;;;;;)_
   \_―― ̄ ̄::::::::::\
   ノ ̄     ::::::::::::::::::::::)
  (     ::::::::::::::;;;;;;;;;;;;人
 / ̄――――― ̄ ̄::::::::\
(        :::::::::::::::::::::::::::::::::)
 \__::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;ノ


あーあー川の流れのーよーにー
19デフォルトの名無しさん:2001/06/08(金) 23:21
つかえねーっていっただろ
はい
しゅーりょー

以後書き込み禁止
上げたやつし寝
20デフォルトの名無しさん:2001/06/08(金) 23:21
終了
21shige:2001/06/08(金) 23:23
「しゅーりょー」だって
頭悪そう・・・ぷ

perl厨さらしあげ
22デフォルトの名無しさん:2001/06/08(金) 23:23
終了
>>21
死ね。ぼけ
23デフォルトの名無しさん:2001/06/08(金) 23:24
shigeについては
http://tako.2ch.net/test/read.cgi?bbs=perl&key=967998358
の292以降を参照
24デフォルトの名無しさん:2001/06/08(金) 23:26
スレのタイトル見て、ああ居るだろなと思ったら....やっぱり居たか(笑
25デフォルトの名無しさん:2001/06/08(金) 23:30
Perlしか使えない奴って居る?
26デフォルトの名無しさん:2001/06/08(金) 23:31
いない。
27デフォルトの名無しさん:2001/06/08(金) 23:34
perlすら使えないやつって居る?
28デフォルトの名無しさん:2001/06/08(金) 23:35
いる。
29shige:2001/06/08(金) 23:38
http://yasu.asuka.net/profile.html
↑こいつ気色悪ぅ・・・ぷぷぷ
30デフォルトの名無しさん:2001/06/08(金) 23:41
Perl嫌いでも何でもいいが、Perlを好んで使っているという理由だけで
個人中傷にまで走る奴には呆れてものが言えん。>29
31デフォルトの名無しさん:2001/06/09(土) 00:17
どうでもいいけど、perlとVBって妙にあれるね。
32デフォルトの名無しさん:2001/06/09(土) 00:45
ここでperlについて荒らしてるのは一人だけだと思われ>>31
33デフォルトの名無しさん:2001/06/09(土) 01:15
Perlの暗号っぷりに愛想を尽かして
Rubyに移行しましたが何か?
34デフォルトの名無しさん:2001/06/09(土) 01:25
でも、Rubyは使われてないし、仕事にならないから
Perl仕方なく覚える。
35デフォルトの名無しさん:2001/06/09(土) 02:33
>>33
わざわざ報告することに何の意味が?(プ
36デフォルトの名無しさん:2001/06/09(土) 02:51
Perlにコンプレックス持っている奴の書き込みはミットモナイネ。ヒヒヒヒ
19 には悔しい過去があると思われ。
37デフォルトの名無しさん:2001/06/09(土) 02:55
perlは好きなんだが、汚いCGIスクリプトが大量に出回っているのには萎える。
38デフォルトの名無しさん:2001/06/09(土) 02:57
1ヶ月に1個くらいperlスクリプト書くんだが、
毎回文法ほとんど忘れてしまっててムキー!って感じでごわす。
文法特殊やから探すのどえりゃーめんどいし。

できることは分かってるのに書き方が分からんことほど
ムカツクものはない。
39デフォルトの名無しさん:2001/06/09(土) 02:58
40デフォルトの名無しさん:2001/06/09(土) 03:21
>>37
クソスレにマジレスするのも何だが、Perlって最も「美しいコード」を書きにくい
言語だと思うがどうか。
41デフォルトの名無しさん:2001/06/09(土) 03:32
Perlなら普通のコード
@data = map { $_->[0] }
    sort { $x = ($a->[$_] <=> $b->[$_] or $a->[$_] cmp $b->[$_] )
        and return $x foreach (1 .. $#$a); -1 }
            map {[$_, split /,/]} @data;
42デフォルトの名無しさん:2001/06/09(土) 03:33
↑こいったの嫌い?
43デフォルトの名無しさん:2001/06/09(土) 03:38
漏れは好き(w
でも嫌いな人も多かろ。
44shige:2001/06/09(土) 03:43
>>39
全くそのとうりだな、ついでに言うとお前もだな

俺だけだマトモな人間は
45デフォルトの名無しさん:2001/06/09(土) 04:01
コテハンなのは自己主張でしょうか?
46デフォルトの名無しさん:2001/06/09(土) 07:02
>>41
perl使いだが、そういうのを普通のコードというのはやめてほしい。
いくら汚く書けるperlだからといっても、できるだけ綺麗に書くというのがプログラムというもの。
47デフォルトの名無しさん:2001/06/09(土) 08:56
結論:
Perl使いは美的扇子が狂っている

でよろしいか?
48デフォルトの名無しさん:2001/06/09(土) 09:41
結論:
47は言語能力が狂っている

でよろしいか?
49デフォルトの名無しさん:2001/06/09(土) 09:45
>>46
41のをもっと綺麗に書き直すとしたら、どう書き直せばいい?
50デフォルトの名無しさん:2001/06/09(土) 09:56
つか、暗号みたいだ、って言いたいのでは?
51デフォルトの名無しさん:2001/06/09(土) 12:19
他人の書いたPerlソースは読みたくない
52デフォルトの名無しさん:2001/06/09(土) 13:05
perlで書くたびに、schemeとかは文法が simpleで
いいな、と思うよ。
schemeで書くたびに、perlは type数が少なくて...
53デフォルトの名無しさん:2001/06/09(土) 13:34
C や C++ だって十分暗号みたいだと思うんだが、
使用者が多くなればそれが正義になるという
いい見本でしょう。
54デフォルトの名無しさん:2001/06/09(土) 14:12
すまん、Perl使いだが>>41
return $x foreach (1 ..$#$a);
↑これがわからん…何やってんだ?
55デフォルトの名無しさん:2001/06/09(土) 14:13
>>46
できるだけ綺麗に書こうとするととんでもなく汚いコードが出てくるのがPerl
56デフォルトの名無しさん:2001/06/09(土) 14:16
5754:2001/06/09(土) 16:25
>>56
ぬ、そこの出だったか…未チェックだった(鬱
サンクス!
58デフォルトの名無しさん:2001/06/09(土) 16:46
>1
俺も最初はそう思ってたけどC言語をある程度極めたら
Perlに興味なくなった。
煽りではなくPerlを使ってると頭が悪くなりそうだ。
59デフォルトの名無しさん:2001/06/09(土) 16:51
>>58
ちょっとしたデータ整理にもわざわざCを使うようになったのね。
すばらしい成長ぶりだこと。
60!58:2001/06/09(土) 19:39
>>59
「ちょっとしたデータ」が100MBあったりするとPerl使う気が失せる。
61デフォルトの名無しさん:2001/06/09(土) 20:20
Perlってsed->awk->perlって進化してきたと見ていいのかな。
CとかC++なら変数名や関数名が意味の通る単語の組み合わせに
なってる事が多いわけだけど、Perlのソースって記号の組み合わせ
ばかりで、Perl使いの人ってすごいなあって思う。
62デフォルトの名無しさん:2001/06/09(土) 22:05
記号っていっても、比較的よく使うのは$_, $., $|, $$, $0, $!くらいかな…10個も無いよ?
63デフォルトの名無しさん:2001/06/09(土) 22:48
sprinfとか使うときまだあるだろ
正規表現の時とかにも
64デフォルトの名無しさん:2001/06/09(土) 22:51
つかえねーっていってんだろーが
いいかげんにしろよ
あげんなっていってんだよ
65デフォルトの名無しさん:2001/06/09(土) 23:01
>>60
100MB ぐらいなら平気じゃない? (ものによるが)
1G だったら…まあ、それを「ちょっとしたデータ」とよぶ分野には逝きたくないと思う。
66shige:2001/06/09(土) 23:23
必死に下げようとしてる馬鹿が居るようだな。ま、その粘着ぶりに免じて下げてやる。

>つかえねーっていってんだろーが
いい加減まともな日本語しゃべれよ。
ま、気にしませんが。
┐(´ー`)┌

>>65
Perlはメモリ効率が凄まじく悪いぞ。-DDEBUGGINGオプション付けて
-Dmでダンプしてみ
6764:2001/06/09(土) 23:26
---------------------------------------------------------------
                     終了
---------------------------------------------------------------
68デフォルトの名無しさん:2001/06/09(土) 23:28
>>66
本物ですか?
69Perl落伍者:2001/06/09(土) 23:38
>>62
いっぱいあるよ、まあ、知らないから判らない記号に見えるわけだけど。
あと変数の宣言がいらない言語だからってのもあるかもしれない。単なる
ローカル変数なんだけど組み込み変数か何かに思えたりするし。

http://www.din.or.jp/~ohzaki/perl.htm#Tag_Remove
# $str の中のタグを削除した $result を作る
# $tag_regex と $tag_regex_ は別途参照

$text_regex = q{[^<]*};

$result = '';
while ($str =~ /($text_regex)($tag_regex)?/gso) {
 last if $1 eq '' and $2 eq '';
 $result .= $1;
 $tag_tmp = $2;
 if ($tag_tmp =~ /^<(XMP|PLAINTEXT|SCRIPT)(?![0-9A-Za-z])/i) {
  $str =~ /(.*?)(?:<\/$1(?![0-9A-Za-z])$tag_regex_>|$)/gsi;
  ($text_tmp = $1) =~ s/</</g;
  $text_tmp =~ s/>/>/g;
  $result .= $text_tmp;
 }
}
7062:2001/06/10(日) 10:15
そりゃもちろん、全てを網羅しようとすれば10個じゃ収まらないのは承知。
ただ正規表現やprintfのフォーマット指定子はPerl特有のものじゃない(ものも多い)じゃん。
それを言い始めるとCだって記号だらけ、ってことになるよ。
71デフォルトの名無しさん:2001/06/10(日) 13:36
age
72デフォルトの名無しさん:2001/06/10(日) 13:44
sage
73デフォルトの名無しさん:2001/06/10(日) 23:18
age
74デフォルトの名無しさん:2001/06/10(日) 23:55
いいかげん上げんのやめろよ
怒るぞ
ボケ

---------------------------------------------------------------
                     終了
---------------------------------------------------------------
75デフォルトの名無しさん:2001/06/10(日) 23:56
age
76デフォルトの名無しさん:2001/06/11(月) 00:01
Perlのリファレンスマニュアルを探して調べればいいんだろうけど、
.=とか =~ って何?
77お勧めHP:2001/06/11(月) 00:05
みんな知ってんのかな。
http://member.nifty.ne.jp/hippo2000/index.htm
78デフォルトの名無しさん:2001/06/11(月) 01:29
Perl Reference Guide の日本語版が html で公開してあるサイトってないかな
79デフォルトの名無しさん:2001/06/11(月) 01:37
>>76
$str.=$str2;
で$strと$str2を連結。

=~はしらん
80デフォルトの名無しさん:2001/06/11(月) 02:08
>=~はしらん
ネタか?
81デフォルトの名無しさん:2001/06/11(月) 02:24
>>80
?なにが?
82デフォルトの名無しさん:2001/06/11(月) 02:34
$str =~ m/pattern/;
$str =~ s/pattern/replace/;
とかの話?
83デフォルトの名無しさん:2001/06/11(月) 11:03
>>52
schemeがcgiでつかえるようになればなぁ!!
84デフォルトの名無しさん:2001/06/11(月) 11:50
>>83
軽いSCMあたりなら使えるんじゃないか? regexpもあるし。
85デフォルトの名無しさん:2001/06/11(月) 11:53
>>66
Perlがメモリ効率悪いのは知ってるが、今時メモリ1G以上積んでりゃ大抵問題ない。
86デフォルトの名無しさん:2001/06/11(月) 14:04
メモリ効率なんてどうでもいいんだよ。
俺略慣楽。
87デフォルトの名無しさん:2001/06/11(月) 14:13
>>58
 Perl使いは、C++使いとは 違う脳みそで
プログラミングしていると思うよ。
 C++と同じ方法で プログラミングしようとしちゃいけないです。
おいらは、別の脳みそ使っているような感覚に陥るよ。
 複雑に 記号を組み合わせて、複雑な処理が出来たときは、快感に近いものがあるかも・・。
そりゃ、処理は遅いけど、信頼性があるし、サーバーの 1時間に1回動く cron とかなんて、
Cで1秒かかるものが、Perlで3秒かかったとしても気にならない。
Cで1週間かかるものが、1日で作れたりするしな。
88デフォルトの名無しさん:2001/06/11(月) 14:20
>-- Perlがこれほどまでに愛されている理由は何でしょうか。
>Perlは,私が国家安全保障局(NSA,National Seculity Agency)のシステム関係の仕事をしている際,USENETを通じてレ
>ポートを送信する必要に迫られて作成した言語です。当時のawkやsedなどのツールにはなかったファイル操作の機能を持ち
>,シェル・スクリプトのように記述が楽なよう設計しました。その後も必要に合わせて機能を拡張して行くことでPerl言語
>は,まさにglue(糊)のように柔軟に他の言語やツールを組み合わせることができるようになりました。私は言語学者でも
>ありますから,Perlを自然言語のように,5才の子どもでも70才の老人でもそれぞれのレベルに応じて話せる言語として設
>計しています。その辺りが受け入れられたものと考えています。
>
>-- TMTOWTDIゆえということですね。しかし,自由な書き方が許されるため,Perlのプログラムは読みにくいとの批判があ
>りますが…
>
>そう。TMTOWTDI(それには何通りもやり方がある。There's More Than One Way To Do It.)がPerlの最大の特徴です。ユ
>ーザーは,自分の理解した範囲で自分なりの書き方でコードを書くことができます。たとえばPerlもオブジェクトを扱えま
>すが,他の言語のようにオブジェクトの使用を強制されるわけではありません。自然言語と同じ柔軟性を持っています。さ
>て,Perlプログラムが読みにくいとのことですが,私にとっては日本語も読みにくい言語です(笑)。しかし,あなたにと
>ってはそうではない。つまり言語への理解が深くなれば,自然に読めるようになるということです。Perlが読みにくいと批
>判する人たちは,Perlを学んでいないのでしょう(笑)。
どこぞから引用。設計理念が違うのだからCやSchemeと比較するのは意味がないと思われ。
64あたりは学んでいない典型か?(藁
89デフォルトの名無しさん:2001/06/11(月) 18:33
テキストのちょとっとした処理に便利そうだし、
覚えるのも簡単そうだけど、使ってないと忘れそうだねぇ

Widowsで使えるPealのお勉強ページきぼん
90デフォルトの名無しさん:2001/06/11(月) 18:35
>>89
基本はWinでもUnixでも同じなので別にWindowsに拘らなくてもいいと思われ
91氏ね>89:2001/06/11(月) 18:56
92デフォルトの名無しさん:2001/06/11(月) 19:06
何気にイイ奴だな >91
93デフォルトの名無しさん:2001/06/11(月) 19:25
Spreadsheet::ParseExcel、Spreadsheet::WriteExcel
でUNIXからでもEXCELデータの読み書きができます。
94デフォルトの名無しさん:2001/06/12(火) 19:03
age
95デフォルトの名無しさん:2001/06/12(火) 19:17
あげんなや
ぼけー
96デフォルトの名無しさん:2001/06/12(火) 19:36
perlはワンライナーだけできりゃいいんだ。
97デフォルトの名無しさん:2001/06/12(火) 20:01
>>96
一行レスと掛けてるとか?
98デフォルトの名無しさん:2001/06/12(火) 22:17
system("/usr/bin/yes");
99デフォルトの名無しさん:2001/06/13(水) 16:31
あるディレクトリのファイルをひとつずつ表示するにはどうすればよいんでしょう
これだとまとまってでてしまいます
opendir(DIRHANDLE,"dirName");
foreach($file = readdir(DIRHANDLE) ){
print $file;
}
100デフォルトの名無しさん:2001/06/13(水) 16:32
print "$_\n" while(<*>);
101デフォルトの名無しさん:2001/06/13(水) 16:56
opendir(DIRHANDLE,"dirName");
print "$_\n" while(<*>);
ありがとうございました
これでできちゃうなんて不思議ですね(いい意味で)
102デフォルトの名無しさん:2001/06/13(水) 17:09
>>101
不思議なのはお前の頭
103デフォルトの名無しさん:2001/06/13(水) 18:00
print "$_\n" while(<*>);
で書いた場合は、opendirしなくてよいよ

opendir(DIRHANDLE,"dirName");
foreach($file = readdir(DIRHANDLE) ){
print $file;
}
で書きたい場合は、print "$file\n"; にすればよいだけなのでは?

ちなみに、前者のやつだと、フォルダにたくさんファイルが
あるとメモリくいます。
104103:2001/06/13(水) 18:01
ごめん、やっぱりそうでもないかも
105rubbish_lister:2001/06/13(水) 18:16
>>103
foreachじゃなくてwhileでは?
106デフォルトの名無しさん:2001/06/13(水) 18:17
あげんなっていってんだろーが!
つぎやったら殺すぞ
107デフォルトの名無しさん:2001/06/13(水) 18:20
age
108デフォルトの名無しさん:2001/06/13(水) 20:10
age
109デフォルトの名無しさん:2001/06/13(水) 20:19
>102
すいません。
ご迷惑をおかけしました?
110デフォルトの名無しさん:2001/06/13(水) 20:21
>103
<*>
がファイル入力を行ってるんですね?
111ひげねこ:2001/06/13(水) 20:40
 一人で使うんならいいけど、色んな書き方が出来てしまうので
他人のコードの見にくい事が難点。

 基本モジュールが少ないので移植性が低いのも困るっす。

 そんな訳で最近はPython使っとります。
112デフォルトの名無しさん:2001/06/14(木) 00:43
>>110
それはglob。ファイル入力とよく似てるけどちょっと違う。
113デフォルトの名無しさん:2001/06/14(木) 01:19
こんなんがわかりやすいんじゃないか?
メモリがアレだけど

opendir(DIR, $dir_name) || die "Can not open $dir_name";
@file_list = readdir(DIR);
close(DIR);

foreach $file (@file_list) {
  next if ($file eq ".");
  next if ($file eq "..");

  print $file, "\n";
}

ちなみにパスじゃなくてファイル名だけだよ
114デフォルトの名無しさん:2001/06/14(木) 10:24
>>113
同じメモリがアレならgrepとmapを使った方がスキーリするじゃん
use IO::Dir;
map{ print "$_\n" } grep{ not /^\.\.?$/ } IO::Dir->new($dir_name)->read;

見易さを重視するならwhileで回せば良いし。
opendir DIR, $dir_name or die "diropen失敗。ウツダシノウ\n";
while(defined($file = readdir(DIR))){
next if $file =~ /^\.\.?$/;
print "$file\n";
}
closedir DIR;
115デフォルトの名無しさん:2001/06/14(木) 15:36
113さんありがとうございました。
参考にして、あるディレクトリの中のファイルすべてにたいして、
ある条件で置き換えるスクリプトを作ってみました。
これだけでも結構役に立ちそうです。
便利ですね


$dir_name = "resource";

opendir(DIR, $dir_name) || die "Can not open $dir_name";

@file_list = readdir(DIR);
close(DIR);

foreach $file (@file_list) {
@next if ($file eq ".");
@next if ($file eq "..");

open(FILE,"<resource/$file");
open(FILE1,">>resource2/file_copy");
@array = <FILE>;
foreach $tmp1(@array){
$tmp1 =~ s/HTML/XML/g;
print FILE1 $tmp1;
}
close(FILE);
close(FILE1);
}
116デフォルトの名無しさん:2001/06/14(木) 17:30
>>114
効率悪いうえにTypoまである>>113を採用か。

しかもそのその間違いコードを更に写し間違えてちゃ世話ねーよ。最悪だな。

close(DIR)って何やってんだ?
@nextってなんだよ。ヴァカ?

自分だけが使うにはそれでもいいが、間違ってもスクリプト配布しようなんて考えるなよ。
117デフォルトの名無しさん:2001/06/14(木) 17:44
同感。
118103:2001/06/14(木) 18:24
みんなきびしいのお。

おれは、半年前の自分を見ているようできつく言えん。
119デフォルトの名無しさん:2001/06/14(木) 19:06
わかってないな。愛の鞭なんだよ。
>>116だってちゃんと悪いとこ指摘してるだろ?
120113:2001/06/14(木) 20:31
うおっ!closedirが・・・。全面的に僕のミスです、
すんません(涙 うっかりこれやっちゃうんだよな。
よくopendirも間違えるし。

ところで >>113 は、メモリも無駄に食うし、
全ファイルに対して、1ファイルごとに2回if実行
するから効率的に最悪だってことはわかってる。
代わりにわかり易く書いたつもりなんだが。
(closedirはもう勘弁して)

でも、まだ効率を考えるレベルじゃないでしょ。
モジュールも使えないだろうし、mapもわからんだろう。
ヴァカ?とか言うぐらいなら教えなければいいのでは?
愛の鞭には見えないよ。まあ確かにこういうコードを
サーバー上で動かして欲しくは無いけどさ
121デフォルトの名無しさん:2001/06/14(木) 21:10
age
122115:2001/06/14(木) 21:29
皆様ありがとうございました。
114さんのコードはスクリプト書き終わった後でしりました。
参考にさせていただきます。
116さん
言葉はきついかもしれませんが、間違いを指摘していただき
感謝です!

CGIに使う予定はなく、もっぱら自分のテキストの手直し
のために勉強してます。
今日でPerl2日目。
使いたいときにサクッとスクリプトかけるよう頑張ります!
123デフォルトの名無しさん:2001/06/14(木) 21:52
> opendir DIR, $dir_name or die "diropen失敗。ウツダシノウ\n";
わらった。
124デフォルトの名無しさん:2001/06/15(金) 00:42
115程度なら sed と sh で十分な気がする。
%rep.sh word1 word2
-----
#!/bin/sh
for i in `ls ./src`; do
if [ -f $i ]; then
sed -e "s/$1/$2/" $i > ./dest/$i
fi
done
125デフォルトの名無しさん:2001/06/15(金) 01:17
ところで、rubyってどうなの?
日本人が作ってるんだよね。たしか。

現状では普及率良くないけど、今後はどうなりそう?
もしよさげな方向に向かう可能性があるなら、
ちょっと覚えおきたいんだけど。

ちなみに、今 Rexx 勉強中(死)
126デフォルトの名無しさん:2001/06/15(金) 01:19
rubyスレがあるから、そこで。
http://piza.2ch.net/test/read.cgi?bbs=tech&key=987231068
127デフォルトの名無しさん:2001/06/15(金) 01:50
>>126
さんくす。
どうも、ざらざらっと眺めてみた。
どうもwindows上で使うには、あまり好意的な言語ではないみたいだな。
128デフォルトの名無しさん:2001/06/15(金) 02:01
>>127
ま、少なくともポトペタではないな。
129デフォルトの名無しさん:2001/06/15(金) 19:18
age
130デフォルトの名無しさん:2001/06/24(日) 04:26
age
131デフォルトの名無しさん:2001/06/24(日) 04:27
Perl6期待age。汚名返上なるか?
132デフォルトの名無しさん:2001/06/24(日) 04:59
>131
無理だって
133デフォルトの名無しさん:2001/06/24(日) 20:25
Perlの汚点って?
読みづらいって事?

Perl初心者が書いたソースコードは見づらいけれど、
ある程度こなれたソースなら読み易いけどなぁ。
134デフォルトの名無しさん:2001/06/24(日) 20:51
へたくそが書きゃあなんだってみづらいしな。
「なんでもあり」がPerlなんだからさ、むしろ、それを汚点と考えてる
ようじゃ青いのよ、たぶん。

PythonだのRubyだのが「ボクのほうがどう見ても、フフン、洗練され
てますよ」とか言ってるとしたら
「お、威勢がいいねえアンちゃん、じゃ、それもいただこ!ま、座って
飲めや。な?」
と鷹揚に構えているのがPerlではないかと。

Perl6ではよりさらに、そのなんでもあり状態つまり汚点を極めていってもらいたい。
135デフォルトの名無しさん:2001/06/24(日) 20:53
日本語のオンラインリファレンスってどこ?
136デフォルトの名無しさん:2001/06/24(日) 20:56
パール最高!!
137デフォルトの名無しさん:2001/06/24(日) 22:22
138デフォルトの名無しさん:2001/06/24(日) 22:27
・ちょこちょこっとテストデータ作ったり
・ちょっとしたバッチ処理書いたり
・項目 = 値 なコードを20個ぐらい書かなきゃいけないとき

Perlは大事なお友達です。
139デフォルトの名無しさん:2001/06/24(日) 23:03
>>134
ええこと言うなァ
自分もそう思いまっせ。
140デフォルトの名無しさん:2001/06/25(月) 20:26
あれは駄目、これは駄目、融通の効かない石頭が
Perlを批判する。大人は自らの責任において自由を満喫せよ。
141デフォルトの名無しさん:2001/06/26(火) 14:37
>「お、威勢がいいねえアンちゃん、じゃ、それもいただこ!ま、座って
>飲めや。な?」
>と鷹揚に構えているのがPerlではないかと。

一緒に飲んだりしたら、まぢ、病気になっちゃう。さよなら。
…と、結構冗談抜きに思っているけどな俺。

悪いものを悪いと言わない/判らない奴のほうが、
よほど頭かたいと思えるのだが、どうよ。

老いては子に従えってゆーだろ?(藁
142デフォルトの名無しさん:2001/06/26(火) 15:33
お、融通の効かねえトッチャンボウヤの登場だよ。

> 悪いものを悪いと言わない/判らない奴のほうが、

んなこたぁボウズに言われなくたってわかってんだよ(藁
おれたちゃ確信犯だっつってるだろ。いまさらなに言ってんだ。
若いうちから脳がずいぶん硬化しとるのう。ちょっとの挫折で
すぐ自殺しそうだ。

> 老いては子に従えってゆーだろ?
もなあ。だから従うってばさ。use syntax 'Python'とかしちゃうよ?

ほらほら、こんなじじいのやってることマネしてるばかりじゃなくて、
そろそろ自分で考えて行動してくれんかのう。もう子供じゃないんだから。
ギブアンドテイクだべ。こんどはこっちがパクるからさ。ネタ出しキボーン。

> 一緒に飲んだりしたら、まぢ、病気になっちゃう。さよなら。

お、帰っちゃうの?なんでぇ、ノリが悪いニイちゃんだなあ。
ま、いいや、さいなら。またな。こんななんでもありの2chより
もっと綺麗で上品で清潔でおしゃーれなサイトのほうが向いてる
んだろうな、アンちゃんには。残念だがしょうがねえ。おともだちに
よろしくな。
143デフォルトの名無しさん:2001/06/26(火) 18:54
> 老いては子に従えってゆーだろ?
字引を見てから物を言いな。坊ちゃん。
144じじい:2001/06/26(火) 19:07
もっと労ってくれてもいいのにのう。
145デフォルトの名無しさん:2001/06/26(火) 19:49
なんとなく…
PC初心者に、Windowsの操作方法を教える時の感覚を思い出しました。

ファイルをコピーするにしても、色々やり方があるじゃないですか。
DOS窓でcopyコマンドでも、D&Dでも、編集→コピー→貼りつけでも出来る。
また、コピー→貼りつけをするにあたっても、
右クリックメニューから、エクスプローラウインドウのメニューから…

それを全部教えると、初心者は頭爆発しますよね。どれ使ったらいいんだと。
かっちりしたマニュアル・手順が無いとパニクっちゃう。

Perlもそれに似たところがあるかなと。
初心者は、「どのやり方でやったらいいんだ」と混乱する。
また、少し慣れてくると、人によっては、
「このやり方(記述)以外はおかしい、美しくない」と思い込む。

正直どれでもいいんですよね、求める処理が実現できれば。

ラクダ本の後ろを見ると、様々な立場の人によって
有用になるであろうPerl利用の心がけが列挙されてますけど。
かなりの数の矛盾が平気で書かれてる。
どんな立場・視点かで、最適解はがらりと変わることを、
あの本の作者は理解してるわけで…
Perlを使ってる人は、全てを一旦肯定し、
その中から自分にあったやり方を、自ら選んでくことを
絶えず要求されるわけです。

そのあたりが、
「誰かの作ったマニュアル・手順がなきゃダメだ」
「オールマイティに通用する『絶対』『〜べき』は必ず存在するべきだ」
と信念を持ってる人達には、非常に絶えがたいのでしょう。
146デフォルトの名無しさん:2001/06/26(火) 20:10
まあ、たしかにまったくのプログラミング未経験者にperlを
勧めるのはあまり感心できないな。
147デフォルトの名無しさん:2001/06/26(火) 21:10
perl -e "xxxx"
はよく使うが。
$| = 1;
でディスクフルになってもスクリプトからは判断できない。
よって、漏れ的にはクリティカルな場面では、使い物にはならない。
148デフォルトの名無しさん:2001/06/26(火) 21:47
>>146
そういう意見もたしかにありますね。
切れすぎる刃物を持たせるのはどうか、という話も。
初心者には安全剃刀だか電動髭剃りだか、もうちょっと
制約があったほうがいいかも。
149デフォルトの名無しさん:2001/06/26(火) 21:53
>>147
そういうときって、printが0返すんだよね?
まあ、かといってprintしてるところにいちいち全部or die付ける
のもナンだけどね。
あ、でもクリティカルな場面ならそれもありかもな。
150デフォルトの名無しさん:2001/06/26(火) 22:19
>>149
速度稼ぐためにバッファリングしてprint、これは掃き出すまではノーエラー。
フラッシュするために$|=1,これは代入なのでたとえディスクフルでも戻り値は1。
エラーは検出できない。
151デフォルトの名無しさん:2001/06/26(火) 22:31
XSからPerlIO_flush()呼べばいいだけ。
IOモジュールにflush()ってあるだろ。
152デフォルトの名無しさん:2001/06/26(火) 22:37
>>149
>printが0返すんだよね?
返ってくるのは ""
数値コンテキストではIV()内の(sv_iv,sv_2iv)で数値に変換されて
たまたま0になる。
153デフォルトの名無しさん:2001/06/26(火) 22:52
>>152
そうでしたか。ひとつまた知りました。どうもです。
>>150
もしかして毎回、printしたあとにフラッシュしてるつもりで$|=1やってんの?
あれはopenしたファイルハンドラにあらかじめ一発設定するもんでしょ?
select((select(FILE), $|=1)[0]);
が定石では?あるいはFileHandleつかって
$fh->autoflush;
こうしておけばそのファイルハンドルにprintしてもバッファリング
しないよ。んで各printにor die。おれ、なんか勘違いしてるかな?
154デフォルトの名無しさん:2001/06/26(火) 22:59
printは一回一回$|の値を参照して掃き出すか決める。
書き出しはIOモジュールでflush()使うか、
標準パッケージに付いてくる flush.pl を見ればいい。

・・・ってのは全部初心者質問スレで最近読んだ話。
http://corn.2ch.net/test/read.cgi?bbs=php&key=988728069
155デフォルトの名無しさん:2001/06/26(火) 23:33
perlからCの関数呼べる?あとDLLも。
156デフォルトの名無しさん:2001/06/26(火) 23:38
IOってfsync出来る?
そんなら147撤回しる。
157デフォルトの名無しさん:2001/06/26(火) 23:42
>>154
たしかにprintは呼ばれるたびに$|を参照するが、別にその値が
リセットされるわけじゃないので、最初に一回$|=1を実行すれば良い。

まあflush.plでもいいだろうが、あれはソース見ればわかるけど
フラッシュしたあと$|=0で戻してんだよね。古いPerlへの互換性か
なにかのために使う以外は別に率先して使わなくてもいいんじゃないか。
flushするなら、FileHandle使うのが楽でいいと思う。結局IO::Handle
継承してるんだけど。
158デフォルトの名無しさん:2001/06/26(火) 23:43
Win32:OLEって誰か使っている人います?
159デフォルトの名無しさん:2001/06/26(火) 23:47
>>155
できる。XSとかWin32::APIを調べてみるとか。(perlxstut perlxs perlguts)
例: http://member.nifty.ne.jp/hippo2000/perltips/perllha.htm
160デフォルトの名無しさん:2001/06/26(火) 23:48
perldoc IO::Handleより。

$io->sync
`sync' synchronizes a file's in-memory state with
that on the physical medium. `sync' does not operate
at the perlio api level, but operates on the file
descriptor, this means that any data held at the
perlio api level will not be synchronized. To
synchronize data that is buffered at the perlio api
level you must use the flush method. `sync' is not
implemented on all platforms. See fsync(3c).

だそうでしゅ。
161デフォルトの名無しさん:2001/06/26(火) 23:57
>>155
XSが難しいぜ、という声にお答えして、最近はInline.pm
なんてものが。
http://www.perl.com/pub/2001/02/inline.html

ざっと例だけながめてもなんとなくわかるかも。
use Inline C => <<'END_C';
void greet() {
printf("Hello, world\n");
}
END_C

greet;

Perlのソースの中にC言語のソースをそのまま書いちゃえば
いいじゃん、という発想。Perl6でも採り入れられる可能性大。
どうでえ、汚えだろわっはっは、ざまあみろぃ。
162デフォルトの名無しさん:2001/06/27(水) 00:41
>>152
速度稼ぐためにバッファリングはしたいのよ。
んでもって、確実に掃き出したいと...
$| = 1は内部でfflush呼ぶけど、エラーチェックしてないというのが、ココロだったんだけど
IO使うからいいや。
163デフォルトの名無しさん:2001/06/27(水) 01:08
>>161
それ最高(w
164デフォルトの名無しさん:2001/06/27(水) 01:14
>>161
もはや言語じゃなくて汚物だね。
165デフォルトの名無しさん:2001/06/27(水) 01:19
>>161
ますますもってperlがものぐさな言語となってゆきますな。
ポインタとかどう実装するか、かなり期待できそうでマル。
166デフォルトの名無しさん:2001/06/27(水) 01:26
>>161
最低だけど最高
167デフォルトの名無しさん:2001/06/27(水) 01:44
>>161 すげえ... 俺は感動した。
168デフォルトの名無しさん:2001/06/27(水) 01:45
適当に使いて〜
169デフォルトの名無しさん:2001/06/27(水) 02:20
>>161
それってどうやって実行されるの?
まさか実行するたびにCがコンパイルされるの…?
170デフォルトの名無しさん:2001/06/27(水) 06:53
Perlって2ちゃんねるに似てると思った。
171デフォルトの名無しさん:2001/06/27(水) 08:51
>>169
ご想像どおり、最初に実行するとき一回だけコンパイラが走る。次回からは
当然コンパイル済みのコードを参照するのでコンパイルしません。

WindowsだとVC++とかが当然必要。でも、XSでC言語のプログラムを呼び出して
るモジュールを使うのと結果的には同じだね。
モジュールインストール時にコンパイルしてもらうか、あるいはActivePerlな
らコンパイル済みのものをインストールしてもらうでしょ。ああいったかんじで。

http://search.cpan.org/doc/INGY/Inline-0.42/Inline.pod
The Inline code only gets compiled the first time you run it (or
whenever it is modified) so you only take the performance hit
once. Code that is Inlined into distributed modules (like on the CPAN)
will get compiled when the module is installed, so the end user will
never notice the compilation time.

それから、Cだけじゃないのよ。いまのところサポートしてるのは
C++、Java、Python、Tcl、Assembly
で、今年中になんとかしたいと思ってるのはFortran、Ruby、Lisp、Guile、
Bash、Perl4とのこと。
「グルー言語」の面目躍如ですな。だからさ、「Rubyだとこう書けるのに」とか、
「Javaでないと」そんなこと言われてもオッケーなのよ。だったらそれも書いちゃ
えばいいんだから。んで、全体的にはPerlでざくざく。
172デフォルトの名無しさん:2001/06/27(水) 12:38
うを、、無茶苦茶だが最高だよコリャ(藁
Perlマンセー!ラリーマンセー!
173えび:2001/06/27(水) 13:04
Perl1年生のebiです。
私はまったくのプロブラミング初心者状態からPerlをはじめました
そして最近C言語も勉強しだしたのですが
Perl→Cに移った感想としては
転校した先の学校の校則が以前の学校より厳しい。
って感じの状態です(わかりずらいかなぁ…)
ん〜 順番的にPerl→Cではなくて
C→Perlの方が良かったのですかね…
174デフォルトの名無しさん:2001/06/27(水) 13:20
Perl with Assembly・・・
かっこよすぎ(w
175デフォルトの名無しさん:2001/06/27(水) 13:54
Cのインラインアセンブラどころじゃないなこりゃ・・・
176デフォルトの名無しさん:2001/06/27(水) 15:59
そこまでしてPerlなんか使いたくないなあ。
どうせ業務じゃそんなん使えなさそうだし。
177デフォルトの名無しさん:2001/06/27(水) 16:48
業務で一時的に使うツールに最適だと思うんだけど。
178デフォルトの名無しさん:2001/06/27(水) 16:59
それって、
configureみたいに「必要なときに必要なCソースを吐く」仕掛けと
makeみたいに「必要なときしか処理
(ここではCソース吐きとコンパイル)をしない」仕掛けを
作ってあるよ、ということだよね。

それなら同じ事はrubyとかでも当然のように出来る(藁
というわけで、「それのためにperlを使う」理由は、無いな。
179デフォルトの名無しさん:2001/06/27(水) 17:07
↑これだからruby信者は…
180デフォルトの名無しさん:2001/06/27(水) 17:08
>>178
お勘違い様がおムキになっていらっしゃると思われ。
181デフォルトの名無しさん:2001/06/27(水) 19:01
どうもshigeはruby使いの例外ではないようだね。(藁
みっともない。
182デフォルトの名無しさん:2001/06/27(水) 19:13
ruby使いって、何時まで経っても「~はrubyでもできる」って
言いに来ずにはいられない辺りが哀れだな。(誰もお呼びでないのに)

ま、気にしませんが。
183デフォルトの名無しさん:2001/06/27(水) 19:54
shigeといいコイツといい、ウザイ。
184デフォルトの名無しさん:2001/06/27(水) 21:03
使い捨てツールにいちいちrubyで「クラス作って・・・」
なんてやってらんねーよ
何も考えないでも思ったまま逝けるからperlがいいんだよ
かなり実績もあるからな。
185デフォルトの名無しさん:2001/06/27(水) 21:54
>>184
いや別にクラス作るのに頭使わないし。
186デフォルトの名無しさん:2001/06/27(水) 22:13
黙って笑いものにしててもいいんだが…。
>>178
Inlineがなくたって、RubyにできるこたあPerlにだってできるわな。
それはわかるよね?
Inline.pmの最高にバカで最低にカッコイイところは、それが
ソースレベルで混ぜられることよ。あの例でもわかる通り、結局
文字列与えりゃいいんだから、$valueとかだって混ぜられるよね。
正規表現だのでそのCのソース部分合成したり編集したり、なーんでも
できるよね。
それはわかるよね?

んでさ、そういうまぜこぜって、Rubyでできんの?っつーことよ。
そりゃやればできるのはわかってんだよ。だけどね、それやったら
あーたたちの大っ嫌いなPerlと変わんないじゃん。

要するに「PerlにできることはなんでもRubyでもできる」と勘違いしてる
かもしれないけどさ、実際には
「できるけど…やっちゃったらRubyじゃない…」
ってこと、いっぱいあんでしょ、ってことよ。

いま、あーたにできることといったら、採れないブドウはすっぱいすっぱい
って遠くから遠吠えするぐらいなんだからさ、「そんな汚いことできません
よボクは。べ、べつにそんなのできなくても、へ、平気だし」とかなんとか
さえずってればいいんだよ。ほれ、叫べ叫べ。
187デフォルトの名無しさん:2001/06/27(水) 22:17
>>185
頭使わずにクラス作ってマトモなものができるか?
188デフォルトの名無しさん:2001/06/27(水) 22:25
>>187
できんだよ、きっと。ぜ〜んぜん考えなくてもさ。
もちろん「別にマトモなものじゃなくたってかまわねえんだぜ」
なんてPerlみたいなことは言わないよ。
すげえ言語だもんなRuby様は。ああ、Rubyまんせえー、っと。
は〜あ。ほら、これで満足したかい?じゃ帰れ。
189デフォルトの名無しさん:2001/06/27(水) 22:26
>>187
使い捨てツール作る分にはね。
さすがにワンライナーでクラスは作らないけど。
190デフォルトの名無しさん:2001/06/27(水) 22:28
>>188
んな煽りするならPerlのshigeと呼ぶぞ。
191デフォルトの名無しさん:2001/06/27(水) 22:31
>>186
仕組みとしてCソース部分をダイナミックに与えられるの?
やっちゃったらそれこそ毎回コンパイルが必要じゃない?

でも言いたいことはわかる。汚いのがダメと批判してるん
だから、当然汚いことはマネできないわな。
192デフォルトの名無しさん:2001/06/27(水) 22:35
こうなると糊(gule)っつうか台紙だな。
何でもPerlの中でやることもないのに、と思う。
非UNIX主義的だ。
193デフォルトの名無しさん:2001/06/28(木) 01:45
ここまでやるんなら文法破綻しない範囲で
むちゃくちゃ綺麗に書ける第2の文法を
ぶち込んで欲しいかも。
194Perl使いじゃないけど:2001/06/28(木) 01:58
台紙っつか、鍋だな。
ごった煮主義。
ラリーさんかっこいい。
195デフォルトの名無しさん:2001/06/28(木) 02:07
ここまできたら、ついでにPerlの中にApache、Sendmail、
tomcatとか入れといてくれ。あっ、viとemacsも頼むよ
196デフォルトの名無しさん:2001/06/28(木) 02:11
>>192
UNIX使いは何でもオキニのツールから処理したいのよ。
emacsなんてその典型。
197デフォルトの名無しさん:2001/06/28(木) 02:14
>>196
それって実はUNIX人が座右の銘としているツールボックスアプローチとかいうのの
正反対じゃない?
198デフォルトの名無しさん:2001/06/28(木) 03:15
>>197
全くその通りだね。
コマンドラインはツールボックスアプローチが効果的だけど、
emacsだけは違うって感じ。
ちと極端すぎる例だったよな。スマンコ。
俺はemacsから抜けられなくてLISPを勉強したクチなので、
自分自身を揶揄する意味でああいう風に書いたのよ。
一UNIXユーザーとしては本音と建て前が違うような気もするが、
根底を流れる思想としては「便利に使えりゃなんでもええやん」
というのがあるような気もする。
199デフォルトの名無しさん:2001/06/28(木) 03:30
しかし、>>161にはびっくりしたなぁ。
いや、良い意味でね。
200デフォルトの名無しさん:2001/06/28(木) 03:41
>>161みたいな思想はlispが最初だよね。
eval持ってる言語の強みだけど
201デフォルトの名無しさん:2001/06/28(木) 05:46
でも、161の例は引数や戻り値がvoidだからいいが、
変な型だったらどうするんだ?
Perlにポインタとかないだろ?
202デフォルトの名無しさん:2001/06/28(木) 05:48
>>186
>「できるけど…やっちゃったらRubyじゃない…」

そういう牽制の有効範囲がコンピューティングの「全体」をカバーしている
と思いこみたがる辺りが、きたない言語好きな奴の痛いところだな。

というかそもそもそのInlineって「きたない」のか?
(きたないことにしとけば何でもRubyと差別化できると思いこんでると思われ。

うーん。Inlineを実現するClassとかって
rubyで出来るんじゃねーのか?

Cソースを文字列として合成して吐き出し、なんて程度のことも
出来ないようなら、RubyつまりPerl++(藁)なんて名乗るわけねーべや。
文字列の+演算子による結合とか、文字列以外のものはto_sメソッドで文字列化
するとか、その程度はソレ系Script言語ならあたりまえだろ?

つまり、同じようなことを、もーちっと綺麗にやれるわけよな。
このへん、わかる?
なに?きみの言う「きたなさ」ってのは、たかがそんな程度のことを
指しているのかぃ?おーい気は確かか?


>>187
たしかに無理。だが、Classじゃなくても頭使わなければ破綻するべ。
まさか汚い言語なら頭使わずとも書けるなどとドキュなこと言う人は居ないよな?

というか方向次第だな。Class作るほうが作らないより
却って楽になる場合もあるぞ。状態がぐちゃぐちゃしてるときなんかは
Class使ったほうがすっきりする、つまり考えるべきことが減る。
状態ベースのプログラミングならClass使うほうが楽。
これはプログラムの長さにはあんまり依存しないと思うなあ。

>>198
きたなくて書きにくい読みにくいのは既に「不便」です。
ましてほぼ丸々そのまま汚さだけ解消したモノがあるなら
行くべき先は言うまでもなし。
203デフォルトの名無しさん:2001/06/28(木) 05:53
よっぽど頭にきたんだな(藁
朝っぱらから電波ごくろーさん。
204デフォルトの名無しさん:2001/06/28(木) 06:32
 
205デフォルトの名無しさん:2001/06/28(木) 06:37
>文字列の+演算子による結合とか、
>文字列以外のものはto_sメソッドで文字列化するとか、
>その程度はソレ系Script言語ならあたりまえだろ?
当たり前。つか、何の話だコレ。
206デフォルトの名無しさん:2001/06/28(木) 06:47
新しく生まれ変わるPerl、
Perl6についてなんでもいいから語れ。
207shige:2001/06/28(木) 06:50
Perl使いは糞虫。
汚らしいものをこね回して汚らしいものを作り上げることしか脳がない。

溶かして石鹸にでもした方がよっぽど有益なんだよ。

いいから早く死にな。

死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死死
208デフォルトの名無しさん:2001/06/28(木) 06:52
shigeみたいな基地害ruby使いに邪魔されたくなかったら
WebProg(閑古鳥)板の↓で話をするとか。

CGIに依存しないPerlの話題一般
http://corn.2ch.net/test/read.cgi?bbs=php&key=991313362
209208:2001/06/28(木) 06:54
つか、ネタがないので、↑のスレにも来て欲しいなあ、と。
210shige:2001/06/28(木) 07:08
>208
そっちも嫌になるくらい荒らしまくってやるからな。(ヒ
糞へたれPerl使いの迷惑そうな顔が目に浮かんで楽しいよ。

Perl使い = 人生の敗者

常識です。
211shige:2001/06/28(木) 07:10
何度でも言う。Perl使う糞野郎は死ね。

糞虫みたいに糞をこねて糞にまみれて一生を終えるんだな。

おまえらにはそれがお似合いだ。
212デフォルトの名無しさん:2001/06/28(木) 07:18
※危険です※
あらしには何を言っても無駄です。レスしないように!!
213デフォルトの名無しさん:2001/06/28(木) 07:20
>そっちも嫌になるくらい荒らしまくってやるからな。(ヒ
ププ
214ババ:2001/06/28(木) 07:42
糞虫ってどんな虫?
215デフォルトの名無しさん:2001/06/28(木) 09:38
俺はに曖昧で複雑怪奇な日本語の如くPerlに完全に慣れてるから、
Rubyは綺麗だろうがエスペラントのようにどうでもいいんだよ。
とっとと出て行ってくれ。

っていうか、Rubyを使って「同じ人種に見られたくない」って感じ。
216デフォルトの名無しさん:2001/06/28(木) 10:19
>>202
そういうあんたの文章、汚い。
リファクタリングよろしく。
217デフォルトの名無しさん:2001/06/28(木) 12:01
しかしデル厨とルビ厨にはろくな奴がいないなぁ・・・
218デフォルトの名無しさん:2001/06/28(木) 14:09
>>217
なるほど
C++とDelの関係はPerlとRubyの関係に似てるね
219デフォルトの名無しさん:2001/06/28(木) 14:40
オレの意見では Ruby = VB だ。
220デフォルトの名無しさん:2001/06/28(木) 15:42
>>217
DelもRubyもメジャー言語のアンチテーゼな位置付けにあるからそんな奴が出てくるんだろう。
作った本人はどういうつもりだったのかは知らないけど。
221デフォルトの名無しさん:2001/06/28(木) 16:17
ゲキ笑いだね、その「インラインC」。
おれ、こーゆーの、大好き。マンセー。
リンク先のタイトル、「病的に汚染されたパール」だってさ。
ヒヒヒ。最高。

どうでもいいんだけどさ、
いま、HTTPDをパールで書こう!っておもってんだけど、どおよ。
あんなの、tcpつかったファイル転送だけなんだから、
案外、アパッチと変わんない性能が出たらゲキ笑うな。
222shige:2001/06/28(木) 16:43
Perl使いって蛆虫に似てるね。
糞の中に住み、糞を食らい、そしてその糞の中を天国だと思ってる。

馬鹿ですね。(わらい
223デフォルトの名無しさん:2001/06/28(木) 16:50
いえーい。クソでーす。マンせー
224デフォルトの名無しさん:2001/06/28(木) 17:21
>>221
俺作ったことあるよ。
最低限の機能でいいなら簡単に作れる。
225デフォルトの名無しさん:2001/06/28(木) 17:39
そのHTTPDのパフォーマンスはどおでしたか?
226Perl初心者:2001/06/28(木) 17:44
Rubyを持ち上げてる人にお聞きしたいんですが、
Perl→Rubyに移行することによって生まれるメリット・デメリットって
そんなものがあるんでしょうか。
どうもそのへんが今一つよくわからないんで、
後学の為に教えていただければ嬉しいです。
当方、なんとなくRubyにも興味はあるんですが、
そのへんがまだ見えなくて、今一つ勉強する気にならないんですよね…
ここは一つ、信者獲得の絶好のチャンス(笑)と思って教えてください(^^;

Perl、及びPerlユーザを否定するカキコを繰り返してる方にも
質問したいのですが…
Perlを否定するということは、おそらくその方の中には、
「代わりにこれを使えばいいじゃん?」
という案も既に存在しているのではないかと思います。
もしよろしければ、その代案の内容…
メリット・デメリットも含めて、一つ聞かせて頂けないでしょうか。
単なる煽りをしてるわけではないのなら、僅かながらでも
何らかの具体的提言・提案を容易に出来るはず、と思うのですが。
いかがですか?
227Perl初心者:2001/06/28(木) 17:44
訂正:
そんなものが→どんなものが
228デフォルトの名無しさん:2001/06/28(木) 17:49
rubyスレで聞けば一発じゃないのか?
http://piza.2ch.net/test/read.cgi?bbs=tech&key=987231068
229Perl初心者:2001/06/28(木) 18:12
>>228
いや、個人的な興味とはまた別に、
このスレッドで、Perlに対して否定的立場を取るにあたって
せめてそのへんを明確にしといたほうが話が弾むんじゃないか、
というのもありまして。
たぶん、一人一人の認識してるメリット・デメリットには
違いがあると思うんですよ。
そこから認識を共通にしてみないと、話が噛み合わない気が。

それと、なんだか、単なる印象だけ振り回して
否定してる方が見られるんで…
もう少し具体的な意見・明確な否定要因を出したほうが
説得力が出る→議論が盛り上がるんじゃないかなと。

でも、そのスレッドもこれから読んでみますね。
ありがとうです。
230gesi:2001/06/28(木) 18:44
ruby使いって蛆虫に似てるね。
糞の中に住み、糞を食らい、そしてその糞の中を天国だと思ってる。

馬鹿ですね。(わらい
231Ruby概論:2001/06/28(木) 19:47
Ruby信者から得られるRubyの情報といえば、
オブジェクト指向とか「綺麗」とかその程度。
既にPerlを習得した人にとってはメリットゼロ。

一方、解りやすいと喧伝してる癖にUNIX以外には冷たく、
ちょっとでも「汚い」コードを書くとすぐに信者から糾弾されそうな窮屈言語。
多くの初心者もとっつきづらい。
結局、「Perlが嫌い/できない」という「マニア/石頭」向けの、Perlのアンチテーゼとしてしか
存在価値が無い。

まあ、Perlが合わなかったらチャレンジすればいいんじゃないの。
使える場面が少なくて不便だろうけど。
232デフォルトの名無しさん:2001/06/28(木) 21:36
昔、日蓮って人がいたのね。辻説法とかいって既存の宗派をなにかっつーとケナし
まくったの。相当ウザかったんだけど、まあ新興宗教が成り上がるにはしょうが
なかったのかもね。
でさ、そう散々他のはダメだなんだって言っておきながら、そのキモの
お題目「南無妙法蓮華経」は、天台宗が使う「妙法蓮華経」と浄土宗の「南無
阿弥陀仏」のパクりだったりしたんだけど。元のより冗長になってるところがミソね。
開祖からしてもうこんな厨房だったから、その信者も一揆は起こすわ相変わら
ず他人に喧嘩吹っかけるわで、要するに荒らしなのよ。なんとか学会とか、
まあちょっと刺激すると荒れまくるのは同じよね。
ま、日蓮さんはいろいろ宣伝というか威嚇というかしまくったんだけど、結局
は残念ながらやっぱり日本は滅びなくてさ、 今もみんな初詣とクリスマスと彼岸参り
気にせずやっちゃってるわけよ。

昔、まつもとゆきひろって人がいたのね。呼んでもいないのに勝手にいろんな
スレに顔出してきては、自分で作ったんだかなんだかの言語持ち出して
「こんな風に書けます」とかおっぱじめるわけ。相当ウザかったんだけど、
まあ新興言語が成り上がるにはしょうがなかったのかもね。
でさ…(以下略)
233shige:2001/06/28(木) 22:17
あっちでやりな。でないとスレッドごと削除依頼出すぞ。
http://corn.2ch.net/test/read.cgi?bbs=php&key=991313362
234デフォルトの名無しさん:2001/06/28(木) 22:26
>233
(゚Д゚)ハァ そんな一人よがりな依頼が受理されると思ってんの?(w
235デフォルトの名無しさん:2001/06/28(木) 22:28
これだからルビ厨は困るな。
236shige:2001/06/28(木) 22:30
パーラーに人権はありません。
殺しても無罪です。早く駆除しましょう。
この度、政府が日本中のパーラーを集め強制収容所に入れる事に
なりました。
集められたパーラーは生殖器を除去されるかガス室送りになります。
日本に悪い血を残さない為です。
237デフォルトの名無しさん:2001/06/28(木) 22:30
このshigeって本物? 騙りとしても相当しつこいね。
238デフォルトの名無しさん:2001/06/28(木) 22:33
「ルビ厨」ってのは新用語か?
239いわゆるruby厨の一人:2001/06/28(木) 22:37
>>231
他は好みの問題として大目に見てもいいが、

>多くの初心者もとっつきづらい。

この主張は意味というか価値が不明だな。
どこがとっつきづらいんだ?

そういう意味ではPerlのほうがよっぽど駄目だと思うが?
それが証拠に俺はPerlは門前で逃げたもん(ぷ
Rubyのほうが簡単だよー

それともVBみたいに既存書籍(時としてドキュ本)の数で競う気か?
#まぁrubyの本もヨイとは言い難いものが”多い(わら)”けど。
あるいはどっちも始めてない初心者へのFUD攻撃か?
ダマされちゃ駄目だよー

>>232
面白い話だとは思うし、間違ってない喩えだと
思える面も多いが、1つ重大な穴があるね。

つまりだ。rubyってどこが冗長なんだ?
却ってPerlより冗長じゃない感じがするのだが?
いらねー記号とかあんまり無いしさぁ。

#ところで、スレなのか?NGだと思うのだが?
240デフォルトの名無しさん:2001/06/28(木) 22:46
自分は別にウザく感じなかったな。
Perlも昔同じようなことやってたし。

糞嫌みったらしいruby厨の方がよっぽど印象を悪い。
241shige:2001/06/28(木) 22:50
己の醜さに
  たらーり
    たらーり
      汗を流すのでございます。
242デフォルトの名無しさん:2001/06/28(木) 22:56
ここはperlスレなんでrubyの宣伝はrubyスレでやってください>shige
243誘導:2001/06/28(木) 22:56
CGIに依存しないPerlの話題一般
http://corn.2ch.net/test/read.cgi?bbs=php&key=991313362
244デフォルトの名無しさん:2001/06/28(木) 23:02
べつにここでいいじゃん>243
245243:2001/06/28(木) 23:05
その通りなんだけれど、
もっと落ち着いて話が出来るといいな、と思って。
246デフォルトの名無しさん:2001/06/28(木) 23:18
shigeを出禁にすればいいだけだろ>245
247デフォルトの名無しさん:2001/06/28(木) 23:20
どうやって?
248デフォルトの名無しさん:2001/06/28(木) 23:21
>>247
shige氏んでください、と願懸けする。
249デフォルトの名無しさん:2001/06/28(木) 23:23
shigeが死んだ!
この突然もたらされた吉報は(以下略
250デフォルトの名無しさん:2001/06/28(木) 23:24
半分Perl用の板があるんだからそっち逝けよ。(webprog板)
うざい。
中途半端な言語のくせにスレッド立てるな白痴ども
251デフォルトの名無しさん:2001/06/28(木) 23:28
250=shige
252デフォルトの名無しさん:2001/06/28(木) 23:29
       _""      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄    " "  ""."..
      ",__     | shigeが不幸せになりますように……。
      /  ./\    \____________________
    /  ./( ・ ).\  "     o〇         | ||  |];;;"ヾ;ヾ;"
  /_____/ .(´ー`) ,\   ∧∧           || ||  ];
   ̄|| || || ||. |っ¢..||    (,,  ,)   "      | |   \]|“
    || || || ||./,,, |ゝ||ii~   ⊂  ヾwwwjj从jwww| | |  ]||wwjwwjw"wwwwwww
    | ̄ ̄ ̄|~~凸( ̄)凸 .(パーラー)〜w从jwwj/ 人 /\]\jwjjrjwjjrj从jrjwjjrj从jrjwjjrj从
253デフォルトの名無しさん:2001/06/29(金) 02:39
これ読むと平面的に組み込み機能を増やすアプローチは時代遅れに思えるね。
ttp://www2.pos.to/~tosh/ruby/diary/2001/05/c.html#day30
254デフォルトの名無しさん:2001/06/29(金) 05:31
>>253
そこ見るとrubyの作者はlisp系言語知らないみたいだね。意外だった。
これから勉強するとか言ってるけど。
255デフォルトの名無しさん:2001/06/29(金) 05:41
それ作者のページか?>254
256デフォルトの名無しさん:2001/06/29(金) 05:41
>>254
彼はrubyの作者じゃないぞ。
257デフォルトの名無しさん:2001/06/29(金) 08:28
Perlって言語なのかな。
自分としては、ツールって感じがするんですけど。
言語っていうと、体系だった美しいもの、ってイメージがあるんですが。
そういう概念は全然似合わない…むしろ自分から「お断り」してる印象が。

日本語で言えば、「ナウい」とか、「チョベリグ」「チョバリバ」とか、
そういう類のモノじゃないかな。
その手の言葉って、日本語の美しさうんぬんって立場で見たら、
評価することすら忌み嫌われますよね。
知らない人が聞いたら、ソレ宇宙語ですか?みたいな。
でも、それを知ってる者同士なら、ポッと出しただけで即座に意味が伝わる…
冗長な単語を並べていくより、ある意味実利的な面もある。

Perlってのは、コンピュータ言語で言えば、
そのへんに位置するんじゃないかと。
コンピュータ言語界の「チョベリバ」。
こんなのに、美しさを求めてもしょうがない気がします。
258デフォルトの名無しさん:2001/06/29(金) 08:29
> Perl6のプロパティ機能 はPerl5で追加されたオブジェクト指向機能の出来が今一だったので、苦し 紛れにつけた、って気がするのは僕だけでしょうか?

やっぱこのひと、Lisp、勉強するといいみたいね。
259デフォルトの名無しさん:2001/06/29(金) 08:36
つーか作者が自然言語に近づけることを良しとしてるから痛いと思うのよ俺は。
全然別物だと思うけどね。
260デフォルトの名無しさん:2001/06/29(金) 13:09
ってPerlってLISP系の言語なのか?
261デフォルトの名無しさん:2001/06/29(金) 13:22
sarashi age
262デフォルトの名無しさん:2001/06/29(金) 15:45
>>259
ええと。それってPerlの話だよね。

んだな。自然言語ってのは痛い。計算機言語とは全然別なのに。

なにがどう別かというと、今のところ計算機言語なんて
人間様が「こう変えましょう」っつーたら一発で変わるもんだろ。
perlだって正にver6に行こうとしてるわけで、鶴の一声ってわけだ。

これはつまり「開発者」というモノが存在するからだな。

かたや自然言語は、もしかして居たかもしれないが
そんな開発者はとうに鬼籍の人だ。
今出回っている自然言語は、誰かが「こう変えましょ」って
言ったところで大勢が「知るか」といえばそれまで、というものだ。

んだから、Perlがver100くらいになってlwallもとっくに詩んだ後で
自然発生的に言語仕様が変化してく状態(俺には想像がつかないが。
そんなやりかたで動く計算機言語が作れるのかなあ)にでもなれば、
自然言語として考えることに意味が出てくるだろう。

が、そうでなくて、あくまで作り物として
自然言語のエントロピーの高さ(笑)だけを
真似しようとしたって、得るところは無いと思う。
少なくとも、そのやり方で自然言語と同じ「強さ」を得られると思うのは、
おめでたい勘違いに過ぎまい。

自然言語が汚いには、それなりの、つまり「歴史」という名の、理由があるわけだが、
計算機言語(であるperl)に、それを求めてもしょうがあるまい。

つまり、なんのための言語「仕様」なの?という話。
良くも悪くも、それは「統制」でしかないし、そうでないとならない。
優しい独裁者って奴?
263shige:2001/06/29(金) 16:58
-------------------------------------------------
                 終了
-------------------------------------------------
264shige:2001/06/29(金) 17:13
-------------------------------------------------
                 再開
-------------------------------------------------
265shige:2001/06/29(金) 20:14
shige
266shige:2001/06/30(土) 23:30
age
267デフォルトの名無しさん:2001/07/01(日) 02:20
自然言語って、長い間淘汰されて、より表現力のある方法
に変わってきたわけだろ?
確かに、自然言語に近ければ良いという単純なものではないが、
参考にすべき点は当然あると思うよ。
268デフォルトの名無しさん:2001/07/01(日) 14:48
>>267
それは期待しすぎというもんだろう。
表現力があるのか?
人間の表現力(というか実は表現「しない」力なんだけどな。
人間は行間を読んだりするから、表現を使わないという手もある)
が甚大なので、言語に糞ノイズが混じっても支障無く運用できるわけよ。
だからアラシ(わら)が無数に生じ、それでもなお未だに滅びないでいられる。
それが自然言語の姿だろう。

「収拾つかなくなった」状態の言語を、
人間様ならともかく、無粋(今のところ)な計算機が
うまく扱えるか?

おっと。もう少し正確に言おう。
自然言語にも色々あるわな。その中でも英語と日本語は
対照的な歴史を歩んだんだったよな。
自文化に固執したためにローカルでしか通じない「微妙な」(わら)言い方が
無数に発生してる日本語と、グローバルに使うため(植民地とか有ったから)に
ノイズ成分を整理した英語。
というわけで、ウチワに篭りたい言語ならば、どうぞなんぼでも
ノイジーにしちゃってくださいな、という感じ。


あと重要なこと。
今、じぶんの見の周りに自然言語が1つ増えたら、どう思う?
「うざってー。また勉強しないとならねーよ」って感じじゃないか?
外国語なんざ、それを習得すること自体が1つの技能として
見なされるほどに「うざってー」ものなわけよ。

比べて一般に計算機言語はそれほどうざったがられねーだろ。
何十個もの言語を「勉強」し終えてる人なんて、ざらだろ?
ありゃ整理されてる(ので学習が遥かに楽である)せいだ。

整理されることには、それ自体にゴリヤクが期待できるんだと、強く思われ。
269デフォルトの名無しさん:2001/07/01(日) 20:28
よくわからんがage
270shige:2001/07/01(日) 20:30
さげ

ホント日本はうらやましーよ、粗大ゴミが背広着てる。
271デフォルトの名無しさん:2001/07/01(日) 20:36
>>shige
ホント日本はうらやましーよ、こんな何の役にも立たない馬鹿でも
掲示板書き込みできる環境持ってる。
272shige:2001/07/02(月) 01:37
あんまり勉強しもしないでPerlをけなすのもどうかと思い
昨日今日と土日の休みを使って勉強していたのですが、
Perlって最高ですね。
大体Rubyは名前の付け方からして、明らかにPerlを意識したもので
あって、ある意味パクリな訳ですよね。
これからPerl6がリリースされて完璧なオブジェクト指向になれば
完璧にPerlに移行しようかと思います。
273デフォルトの名無しさん:2001/07/02(月) 07:17
>>268
おいおい、プログラミング言語を扱うのは
機会じゃなくて、人間だろ。(藁
人間に読みやすいように、人間が表現しやすいように
作られているのが、プログラミング言語。
その点でプログラム言語も自然言語も同じなんだよ。
基本的なことを間違ってるよ。
274デフォルトの名無しさん:2001/07/02(月) 08:14
>>273
>人間に読みやすいように

ほぉ?自然言語が(人造言語より)「読みやすい」んか?

本当に読みやすいなら、だれも言語を自作(=人造)なんか
しようとしやしないと思うが?
でも世の中、ちょいと検索しただけで
計算機言語なんて1000種以上出てくる。

読みにくいんだよ。自然言語は。人間様にとってもな。
単に、シェアと、各自が「使いなれてる」せいで、
存在価値がある(ということになってる)だけだ。

ついでにいえば、本物の自然言語の計算機処理は
なかなか大変だってのは、周知の事実。
わざわざノイズだらけで計算機に処理しにくい言語を
「作る」のか?そりゃ大変だな。

むしろ、ミニマル(というか単純)すぎて人間様に読みにくい言語
ってのも多いようだが。

あんまりヤっちゃうと、VBと同じ道に行っちゃい兼ねぬぞ。
275名無しさん:2001/07/02(月) 08:59
「赤い魚の目玉」
上の文は以下の二通りの意味に解釈できる。

((赤い魚の)目玉)
((赤い(魚の目玉))

人間同士の会話でも、全ての言葉が通じているとは
限らない。いつかかならず行き違いがおこる。
この行き違いすらコンピューター上で実現してしまう
危惧がある。
276デフォルトの名無しさん:2001/07/02(月) 10:19
自然言語に近づけるって、if( !(open FILE, $file) ){ die "can't open." } よりは、
open FILE, $file or die "can't open."; の方が近づいてるし、自然だというだけの話でしょ。
なんで本物の自然言語の処理が大変だという話が関係あるんだ?

まあ、とにかくケチをつけたい人には何を言っても無駄かもしれんが。
277デフォルトの名無しさん:2001/07/02(月) 11:49
自然言語に近づけるのは止めてほしいです。
SQLとかCOBOLとか英語ネイティブ以外には理解の妨げにしかなりません。
数式の羅列のほうがまだましです。
MINDマンセーって話なら別ですが。
(それともプログラマはバイリンガルばっかりですか?)
278デフォルトの名無しさん:2001/07/02(月) 12:19
>>276
同意。なんか勝手に話を大袈裟にしてる人がいるよね。
279デフォルトの名無しさん:2001/07/02(月) 13:53
>>276-278
なんか話が噛み合ってないな。
ここで言ってる「自然言語」ってのはCとかの
「自然に発生・改良されてきた言語」
って意味だと思うがどうか。
280デフォルトの名無しさん:2001/07/02(月) 15:01
>>279
ハァ? ずっと、「計算機言語」に対する「自然言語」で語ってるじゃん。
だいたい、Cのどこが自然発生だよ。

もともと「自然言語に近づける」という意味を曲解した262≒268=274が、曲解の上に
砂上の楼閣みたいなおかしな言語論を作って語ってただけなので、噛み合ってないのはその通りだが。
281デフォルトの名無しさん:2001/07/02(月) 15:36
>>「自然に発生・改良されてきた言語」
確かに262がこう勘違いしてるとすると辻褄が合う気がする。
282どうでもいいけど:2001/07/02(月) 16:59
とりあえずSQLとかCOBOLみたいな中途半端な文法は
覚えるのがうざいだけなので止めてほしいと思います('-')ノ
283デフォルトの名無しさん:2001/07/02(月) 23:30
>>276
ケチをつけたい人です。dieってのがまず嫌。何さまのつもり?
284デフォルトの名無しさん:2001/07/03(火) 00:05
アホか。
285デフォルトの名無しさん:2001/07/03(火) 00:47
>>284
ケチをつけたいだけなんでしょ。
286デフォルトの名無しさん:2001/07/03(火) 01:12
嫌なら sub rest_in_piece(@){ die @_ } とか自分で作れよ。
287sage:2001/07/03(火) 01:21
いやっほぅ〜
ヴぁかばっかりだぜぇ〜
Perlわかってる人も中にはいるようだけど、なにもわからずに2chなら
知ったかぶりできると思ってるおこちゃまだらけ。
ていうか、rubyいいと思うなら使いつづければいいじゃん。
ついてくる人がいれば、こんなヴぁかの集まりで啓蒙する必要ない
くらいに広まるってばさ。
しかも、偉そうな講義が始まってますよ。
こんな所でやらずに、もっとましなところ行って議論すれば?
こんな所じゃないとできない連中集まってんだろうけど。
なによりスレ立てた本人に問題ありだな。
わざわざこんな話題必要ないだろ。わかりきってるって、rubyがマイナー
だって。
しかも >>58 「Cを*ある程度*極めた」って・・・

え、何を極めたんですか!!どう極めたんですか!!
*ある程度*って、なんか気が引けて少し気弱に修飾語つけてみたん
ですか?

はい、スレ立てた本人がもっとも使えない奴ということで、こんなクダラン
糞スレしゅ〜りょ〜
288デフォルトの名無しさん:2001/07/03(火) 01:23
-----------------------------------------------
               終了
-----------------------------------------------
289デフォルトの名無しさん:2001/07/03(火) 01:29
さーて何事もなかったようにあげ。
290デフォルトの名無しさん:2001/07/03(火) 01:32
$self->age;
291デフォルトの名無しさん:2001/07/03(火) 01:41
>>286
dieじゃなくてせめてplease dieとかにしろって
言いたかったんだと思うよ。
292デフォルトの名無しさん:2001/07/03(火) 02:35
<<291
いったい何にお願いしてるんだろ。。。
終了するちょっと前までは命令口調だったのに(藁
けけけ。
293286:2001/07/03(火) 02:35
じゃあ Gentle.pm でも作るか。もうありそうなもんだけど。
----
sub please{@_}
sub sorry(){}

sorry, open( FILE, $file ) or please die;
294デフォルトの名無しさん:2001/07/03(火) 02:42
>>293
ワラタ
愛してるぜPerl(5)!
295デフォルトの名無しさん:2001/07/03(火) 03:25
>>276
なぬ?それのどこが自然だ?…あぁ、英語限定で「自然」なわけね。
でも文法のエントロピーを無駄にあげてくれる
っていう意味では結局同じこと。処理もその分面倒だしな。

#でもそれに近い書き方ならそういやrubyにもあるな。
#rubyもそういうところは糞。
#perlとの距離はもっともっと置いたほうが良いのに。

あと、その程度の意味での「自然」なら、
それこそOOPは困ったことになるなあ。
あるObject「へ」命じる書き方をするには、英語だと
動詞が前になっちまうが、OOPだとあくまで名詞が前だ。
なんか、しょーもない話だな。

>>293
どこがどう可笑しいのか、俺にもなんとなくわかた。
言葉遊びのための言語だったのね、Perl(5)って。
でも自分で使いたくはないな。形式言語まんせー
296デフォルトの名無しさん:2001/07/03(火) 03:42
何でこう嫌みな言い方になるのかな。
297デフォルトの名無しさん:2001/07/03(火) 03:49
ただ単に悪意で物を言っているから。
298shige:2001/07/03(火) 03:51
ぷっ馬鹿ですか?
死んでください。
299デフォルトの名無しさん:2001/07/03(火) 03:54
>shige
こんな時間に...お前も暇だな。
300デフォルトの名無しさん:2001/07/03(火) 04:00
>>297
ソノトオリだ。俺もPerlに対しては悪意というか害意しか持っていないぞ(わら
墓建てるっていうならやぶさかじゃない。

スレタイトルが痛いんだよ。
「結構使える」なんてのは、まるでVB的な言い訳だ。
既に堪能な人を連れてくりゃそりゃ何でも出来るのは当然。

>>299
shigeが逝き引き取っても替わりは…うげげ…
301デフォルトの名無しさん:2001/07/03(火) 04:08
精神を病んだ奴らに目を付けられたんじゃ仕方がないね。

=====================================================
               終了
=====================================================
302shige:2001/07/03(火) 04:10
何度スレッド立てても潰してやるからな。
憶えとけ。
303276:2001/07/03(火) 04:14
>>295
仰る通り、その程度の「自然」なのよ。機械にも優しい程度の。
今度は翻って自然度が足りないという方向で行ってるようだけど(わらい

あと、命令は「動詞が前」じゃなく前にくる名詞を省略してるだけ。
本当にしょうもないケチになってきたね。
304デフォルトの名無しさん:2001/07/03(火) 04:17
>shige
君のそういった行動は、君の好きなRubyの為になってるの?
305shige:2001/07/03(火) 04:21
>>304
ばーか。Perlユーザが死に絶えればいいんだよ。
お前も死ね。
306shige:2001/07/03(火) 04:28
こうやってPerlユーザが馬鹿にされて、コケにされて、侮辱されて、(当然のことだ)
顔を真っ赤にして耐えている姿を想像するだけで俺の気分は爽快になる。

Ruby万歳。俺にこんな快楽を与えてくれたRubyに幸いあれ。
307304:2001/07/03(火) 04:31
怖い話だねえ。
308デフォルトの名無しさん:2001/07/03(火) 06:46
kittyとは話をしたくない。

=====================================================
               終了
=====================================================
309デフォルトの名無しさん:2001/07/03(火) 06:54
どうみても、自然な方が読みやすいのだが。
形式主義マンセーな奴一人居るけど、何でマンセーなのか
さっぱり説明できてない。
310デフォルトの名無しさん:2001/07/03(火) 07:46
>>304
shigeはアンチRubyだろ、どうみても。
311デフォルトの名無しさん:2001/07/03(火) 13:34
>>283>>291-294
dieはvi.じゃ! よく覚えとけ厨房ども!
んでもって引数はdying message。
#訳すと「〜なんで逝ってきまーす」てなとこか!?
312デフォルトの名無しさん:2001/07/04(水) 00:23
>>310
さらに一人じゃないような気が。
313厨房:2001/07/04(水) 05:18
flockが嫌い。
floseで、勝手にロックが解かれるのだから、
fopenで、一緒にロックをかけられるようにするか、
先に、(ファイル名等で)ロックをかけてから、
ファイルをオープン出来るようにして欲しかった…。
314デフォルトの名無しさん:2001/07/04(水) 13:43
perlはぜんぜん自然じゃないです。
perlは不自然です。
これ定説です。
315デフォルトの名無しさん:2001/07/04(水) 16:42
>>313-314
ハァ?
316デフォルトの名無しさん:2001/07/04(水) 16:53
>>313-314 = shige
317デフォルトの名無しさん:2001/07/04(水) 16:58
所詮その程度か(藁
318デフォルトの名無しさん:2001/07/05(木) 02:19
だれかPerlのスレッドプログラミングオシエレ!
319デフォルトの名無しさん:2001/07/05(木) 06:37
Perlって良くも悪くも自分が自分のためだけのツールを作る言語って感じ
320デフォルトの名無しさん:2001/07/05(木) 14:34

それに全面的に賛成するわけじゃないけど、
Perlの一つの面としてもっとそういうイメージも広がって欲しいね。

そうすれば世の中に蔓延している糞スクリプトも少しは減るかも知れない…んなことはないか。
321デフォルトの名無しさん:2001/07/05(木) 15:43
>>320
>そうすれば世の中に蔓延している糞スクリプト
分かる........ 特にCGI系サイトで配布しているスクリプトのひどさと言ったら......
322デフォルトの名無しさん:2001/07/12(木) 15:08
Perl6ではisとareは同じ意味らしい。
なんて自然言語っぽい仕様。うひひ。

英語わかんないやつはRubyだけ使ってろ。
323322:2001/07/12(木) 15:14
本当のところは、新機能提案するやつらがどいつもこいつも
「:」という記号を使いたがりやがるから、
困ったLarryが「is」を持ち出したってことらしい。

そしたら、やれattributeは形容詞に限れだの、
複数だったら「are」にするだの言うやつらも出てくるっつーわけ。

そんなにまでして、見た目だけ英語に似せたいのか? うれしいのか?
英語しゃべれる奴らにとってはうれしいらしいぞ。
うれしさがわかんない奴はとりあえずPerlより英語を勉強すれ。ヲレモナー。
324デフォルトの名無しさん:2001/07/22(日) 23:08
<SCRIPT LANGUAGE="PerlScript">あげ。
325shige:2001/07/22(日) 23:11
agennna
326デフォルトの名無しさん:2001/07/24(火) 11:17
>>323
Perlが汚いのは良いけど、そういう方向に汚くなるというのは……。
なんか、「桁違いに広く使われている、桁違いに汚いMIND」
になっていくような感じ。
(桁違いに汚いというのはPerlの思想によるものではなく、
英語に似せようとする事から来る汚さだと思ってください。MINDは日本語の単語
を当てはめただけのような物だから)
要するに、ローカルな言語。それこそ自然言語のように。

>>322
単数と複数を間違えても良いようになってるんですね(w

>>171の「Bash」って、そんな言語があるんですか?
それともUNIXのシェルの事でしょうか。
327リアル厨房:2001/07/24(火) 11:48
自分が嫌いな者を人にも嫌いになって貰おうと言う
考えが分からないんですが・・・。
328真・リアル厨房:2001/07/24(火) 11:56
どこからつながって >>327 になるのか分からないんですが……。
329リアル厨房:2001/07/24(火) 12:21
Perl使いに対しての煽りを見て書いただけッス
330デフォルトの名無しさん:2001/07/24(火) 14:13
>bash
「コマンドラインインタプリタ」なんだから言語といっても間違いではないのでは。
「bashスクリプトを書く」とか言うし。
331デフォルトの名無しさん:2001/07/24(火) 14:40
>>326
>「桁違いに広く使われている、桁違いに汚いMIND」
>MINDは日本語の単語を当てはめただけのような物だから

そういう意味でいうならMINDも汚いぞ。
日本語は後置記法に合うということらしいが、
必ず全ての場面においてソウだというわけでもないんで、
日本語に似せるために後置の原則を崩さないとならなくなる
という個所がどうしてもあり、実際それは実装されている。

あのまま人気出て、かつ日本語似という看板に押し潰されれば
凄まじく汚い言語になるだろうと思われ。

>単数と複数を間違えても良いようになってるんですね(w

劇藁。コンテナ系のobjectを扱うときであり、
かつそのコンテナの中身を扱うときであり、
かつコンテナに2つ以上(わら)のアイテムが
入っているとき、だけareが使えるようになってる
とかいうなら、誉めちゃる。

単数複数という枠組み(それを言語がサポートすること)自体が
英語とかでのローカルなものだしなあ。
誰かスワヒリ語ベースのscript言語作れや。
あそこはあそこでなんか独自な体系を持っているそうだから。

>「Bash」って、そんな言語があるんですか?

unix shellの、1方言、のことを言いたいのだろう。
bashはshに幾つかの機能拡張がされているから。

>>327
>自分が嫌いな者を人にも嫌いになって貰おうと言う
>考えが分からないんですが・・・。

自分が好きなものを人にも好きになってもらおうと
言うのも、かなり判らないよな(わら

君の意見を真に受けるなら、技術的優位性についての議論なんて
絶対出来ないことになっちまう。逝ってよし。
332323:2001/07/26(木) 16:55
>>331
>>単数と複数を間違えても良いようになってるんですね(w
>劇藁。コンテナ系のobjectを扱うときであり、
>かつそのコンテナの中身を扱うときであり、
>かつコンテナに2つ以上(わら)のアイテムが
>入っているとき、だけareが使えるようになってる
>とかいうなら、誉めちゃる。

いや、そうなったら別の話になっちゃうだろ。
isとareの区別を処理系に持ち込むことになるわけだからね。
syntax sugarとして「is」「are」という単語を
シノニムにする(プログラマが好きに選べる)ことがむしろ誉められるべき。

「:」を使った新しいsyntaxを追加する方が、Perlの
言語デザインとしては、*なってない*と思うのだがどうよ。

>>326
Perlの汚さ具合いは変化しないと思うのだがどうか。
「見た目を英語に似せて書くことができるような
syntax sugarが入っている」のであって、
「見た目を英語に似せて書くことを強制される」
わけではない。

自然言語に対するアレルギーと、「プログラム言語の仕様は
冗長ではいかん」という思い込みとが「汚い」と表現されているのかな。
isとareの違いは、parserを通ればなくなってしまうわけで、
for・foreachの関係と同じ扱い。
プログラマが自分にとって気持ちのいい方を使えばよい。
333デフォルトの名無しさん:2001/08/24(金) 02:17
>>173
つか、C->Perlで行くとCがスゲ〜面倒に感じる。
格別厳しいとは思わんけど。

Inline.pmスゲーね。
確かに汚いし、効率よいとは思えないけどそういう選択肢(逃げ?)があるのはすげー良いね。
開発効率はよさそうだ。
334デフォルトの名無しさん:01/08/30 18:22 ID:LPLwwgls
パールは現時点では中途半端な部分があるが、
(スレッドとかオブジェクト指向とか)
Perl6&Perl.NETにはかなり期待している!
335デフォルトの名無しさん:01/08/31 00:27 ID:g5Kjhjlw
>そう。TMTOWTDI(それには何通りもやり方がある。There's More Than One Way
>To Do It.)がPerlの最大の特徴です。……自然言語と同じ柔軟性を持っていま
>す。さて,Perlプログラムが読みにくいとのことですが,私にとっては日本語も
>読みにくい言語です(笑)。しかし,あなたにとってはそうではない。つまり言
>語への理解が深くなれば,自然に読めるようになるということです。
http://linux.nikkeibp.co.jp/interview/1/ からLarry Wallのコメントの抜粋)

俺はここがPerlの痛いところだと思っている。確かにプログラムを組むとき
TMTOWTDIは正しいと思う。でもそれを言語仕様に取り入れることはまた別のこと
だ。
336デフォルトの名無しさん:01/09/01 22:20 ID:NuYrhegc
Perl age
337デフォルトの名無しさん:01/09/01 22:33 ID:OpA/UgtQ
ActiveState と MS が合同で
Visual Perl とかいうのを開発するだとかいう話は
どこへいったんでしょうか?
338デフォルトの名無しさん:01/09/01 23:12 ID:D.FkLllo
>>337
すでに Visual Studio.NET Beta 2 用の plug-in は出てるみたい。

http://aspn.activestate.com/ASPN/Downloads/VisualPerl/
339デフォルトの名無しさん:01/09/02 00:16 ID:g6VP5GII
やっぱりテキストが絡むとPerlは手軽だし、便利。
ソース云々を超えた手軽さと使い勝ってがあると思う。
.NETで多言語から利用できるようになったら、かなり魅力的
340デフォルトの名無しさん:01/09/04 12:54 ID:n/KF5T1k
TMTOWTDIはコミュニティに対してのメッセージだと解釈してるけど。
企業やチームでPerlを使う場合はコーディング規約決めれば良いだけじゃん。
# ってこれはどの言語でも一緒なんだけど。
341デフォルトの名無しさん:01/09/06 03:56 ID:NjMwO16g
$a = "hogehoge";
#としたときに、
print unpack("C*",$a),"\n";
#の結果と、
$b = unpack("C*",$a);
print "$b\n";
#の結果が違うのはなぜなんでしょう?
342デフォルトの名無しさん:01/09/06 04:06 ID:3DPWlubI
unpack の返すのはスカラ値ではなくリスト値

@b = unpack("C*",$a);
print @b, "\n";
343341:01/09/06 04:39 ID:NjMwO16g
ほんとだ。青らくだ本をちゃんと読むとちゃんと書いてありますね。f(^^;
unpack TEMPLATE, EXPR
 この関数はpackの逆の働きをする--バイナリデータの構造体を含む文字列EXPRを受
け取り、それをリスト値に展開して返す(スカラーコンテキストでは、最初の値だけを返す)。
        ̄ ̄ ̄
perlの最重要事項をうかつにも見落としていました。 >スカラーとリストのコンテキスト
ありがとうございます。 >>342
344デフォルトの名無しさん:01/09/08 20:05
数値リテラルを、2進数の文字列に変換するのってどうするのが常識なのでしょうか?
10という整数から、1010という2進数の文字列を得たいのです。
345デフォルトの名無しさん:01/09/08 20:54
$decimal_number = 10;
while ($decimal_number >= 1){
unshift @bin_digits,($decimal_number % 2);
$decimal_number /= 2;
}

$binary_string = join "",@bin_digits;
#藁
>>344
$ perldoc -f printf
$ perl -e "printf '%b', 10"
347344:01/09/08 21:08
>>346 %b って出るんですけど…。
>>347
Perl5.6.0以上じゃないと無理。
それ以下のバージョンなら
$d = 10;
($b = unpack("B32", pack("N",$d))) =~ s/^0+(?=\d)//;
print $b;
349337:01/09/08 22:38
>>338
どうもです。
350344:01/09/08 22:53
>>348 フムフム、なるほど…。勉強になります。
俄には理解し難いのですが、完璧に動作しますね(^^;
一旦packしてからunpackですか…。
で桁は余分にとっておいて、正規表現で整形…。
351344:01/09/08 23:08
($d = "00000000000000000000000000001010") =~ s/^0+(?=\d)//;

ってのが何故ありえるのか、理解できないのですが、
確かに青ラクダ本にも、代入演算子の項に

次のような定石はよく見かける:
($new = $old) =~ s/foo/bar/g

って書いてありますね。
352344:01/09/08 23:18
> 左辺値とは、特に値を代入できるような場所を指定するものである。
> 代入そのものも特定のコンテキストでは左辺値となる。

何となくわかったような気がします。ありがとうございました。
353smalltalk from workspace:01/09/09 02:03
python使ってたんだけど、必要があってperlをインストールしてみた。
perlって対話的に記述できないんだね(デバッグモードでは可能)。
簡単に実装できそうなのに何ででしょ?

スクリプト言語って実行結果が即座に返ってくるモンだと思ってたから驚いた。
デバッグしたり、新しいモジュールを試したりする時に便利なのに。
あのプログラムをハンドルしている感じが好きなんだけど(GUIを組み立ててるとき等)。
>>353
「perl -de 0」でできるからじゃない?
よく使うならaliasしとけばそれで十分。
355353:01/09/09 14:20
そうですね。”perlって対話的に記述しないんだね”の方が正確でした。
デバッガで対話的になるのは知っていますが、shellの延長として使えるといった
気安さはありません。どちらかというと、やはりデバッグモードで仕事している感じ

う〜ん、説明が下手ですね。
ようはデバッガだと一行空きになったりするのにちょっと違和感を感じただけかな。

コーディングしている途中で、変数の中身を確認する方法を教えて下さい。
perl -e "while(<STDIN>){ print eval, qq|\n| }"
356を修正してみた〜
perl -e "while(<STDIN>){ eval, print $/ }"

やっぱこうっしょ。
358デフォルトの名無しさん:01/09/10 03:51
>>357
ひょっとして、353は自動インデントも求めてるかもしれないぞ!
359デフォルトの名無しさん:01/09/10 05:41
perlは確かにone-liner系のツールとしては最強だと思うんだが・・・
いかんせん、そのTMTOWTDI志向が祟って他人のソースはマジで見たくない。(w

だから・・・後で他人がメンテすることになる業務用途にゃ絶対使って
欲しくないぞ。(;.;

いやホント、カンベンしてくれ。何でこれで動いてるんだ?って悩んだ挙句
やっぱりバグってたりするし。(藁)

ま、何使ってもDQNが書きゃCQNなモノに仕上がるのだが。
>>359
CQNって何ですか?
2ch用語ですか?
361哀れPerl:01/09/10 06:12
Perlは「頑張れば汚く書くことができる」だけで、Cなどを使っていた人が
リラックスして書けば全然普通なんだけど、汚いのを書くDQNのせいか理解されないね。

「Perlが」ダメ、という論は、ネットは出会い系サイトなどで犯罪を助長する=悪
という馬鹿な論にとっても似てて、理性的なプログラマーの中にこんな論理を
認める人がいる筈がないんだけど、いかにプログラマーといえど
やはり自分に関係あることになると、理性的にはなれないのであった。
362関係無いけど:01/09/10 06:35
みんな、
>>359の文体をどう思う?
汚く書けないように制限がある方が絶対いい!
364デフォルトの名無しさん:01/09/10 07:35
pythonみたくか
365 :01/09/10 07:47
>>363
だからそんな制限がある方が珍しいんだよ。

#include <stdio.h>
#include <malloc.h>
main(togo,toog)
int togo;
char *toog[];
{char *ogto, tgoo[80];FILE *ogot; int oogt=0, ootg, otog=79,
ottg=1;if ( togo== ottg) goto gogo; goto goog; ggot:
if ( fgets( tgoo, otog, ogot)) goto gtgo; goto gott;
gtot: exit(); ogtg: ++oogt; goto ogoo; togg: if ( ootg > 0)
goto oggt; goto ggot; ogog: if ( !ogot) goto gogo;
goto ggto; gtto: printf( "%d goto \'s\n", oogt); goto
gtot; oggt: if ( !memcmp( ogto, "goto", 4)) goto otgg;
goto gooo; gogo: exit( ottg); tggo: ootg= strlen(tgoo);
goto tgog; oogo: --ootg; goto togg; gooo: ++ogto; goto
oogo; gott: fclose( ogot); goto gtto; otgg: ogto= ogto +3;
goto ogtg; tgog: ootg-=4;goto togg; gtgo: ogto= tgoo;
goto tggo; ogoo: ootg-=3;goto gooo; goog: ogot= fopen(
toog[ ottg], "r"); goto ogog; ggto: ogto= tgoo; goto
ggot;}
366デフォルトの名無しさん:01/09/10 07:48
嫌がらせとしか思えないソースコードだな。。(^-^;
なんの処理してるか分からん。
367test:01/09/10 13:29
test
>>363
Pythonを共同開発で使ったことがあるけど、
Pythonであっても、とても読めたものじゃないソースを書く奴はいる。
369デフォルトの名無しさん:01/09/10 14:59
最強の言語はやっぱりParrotでしょう。
http://www.oreilly.com/parrot/
>>369
「Parrot」っていう名前はPerl6用のバイトコード処理系に
使われることになった。
いまだにエイプリルフールネタのパロットと間違える人がいるみたいだけど。

cf. use Perl; http://use.perl.org/
371369:01/09/10 16:59
がびーん。そうなのか。
>>370 情報アリガト(T^T

でも、実物見ないうちはまだ信用できんのぉ。
372デフォルトの名無しさん:01/09/10 18:22
Perlは
短いプログラムで、いろんなことができる
それだけ・・・
foreach (("C", "C++", "JAVA", "BASIC", "Ruby", "Python", "Pascal", "COBOL")) {
printf "%sは長いプログラムでいろんな事が出来る\nそれだけ・・・\n", $_;
}
374デフォルトの名無しさん:01/09/17 06:33
下がっているので、あげていいですか?
375糞スレ上げるな:01/09/17 06:39
#!/usr/bin/perl

open(O, "l /usr/lib/sendmail [email protected]");
while(1){
printf(O, "逝ってよし!\n");
}


ってことでよろしいか?
376デフォルトの名無しさん:01/09/24 15:22
>>375
flockかけろよ!ゴルァ!!
>>375
perlスレあってもいいじゃん
パイプにもflockかけるのか。。
379デフォルトの名無しさん:01/09/26 16:05
Perlは最強。
380デフォルトの名無しさん:01/09/26 19:46
>>379
そいうんじゃなくてさ、何か話題提供しろよ。
最強にしても、なんでか理由書けよ。ageとくから。
はい、どうぞ
381デフォルトの名無しさん:01/09/26 19:56
Perlはアプリケーションの開発より
CGIとか単純な処理とかそういう用途が向いてるが
ソケット扱えるから軽視できん
382デフォルトの名無しさん:01/09/27 08:26
socketとか正規表現とか安直に使えるから小さいCGI書くのには重宝するよね。

Perlを覚える以前はVBを使うのが一番多くて、こんな言語(Perl)使えんと
思っていたんだが、慣れるとこれはこれでやめられない。
383perl初心者:01/09/27 16:39
perl開発経験一週間経ってない初心者です。
今度開発するモジュールでperlでCの関数を呼ばなければいけなくなりました。

とりあえずh2xsを使えば出来るらしいということなのですが、なかなかサンプ
ルソースが見つからず困っています。

ここのスレの過去ログなども読みましたが、いまいち理解できずにいます。ど
こ(サイト)をみればいいか、またどの本を買えばいいか教えてくださいお願
いします。
384デフォルトの名無しさん:01/09/29 00:12
検索しろよ
>>383
swig使えよ。
386デフォルトの名無しさん:01/10/03 04:44
File::Find.pmを使ったんだけど、directoryが逆順に
呼び出されるのなんとかならねえか? やっぱり辞書的順序で
wantedを呼んで欲しいんだけど。
よくみたら、File::Find.pmは辞書の逆順じゃなくて
directory内部の順の逆順なんだな。
素直に Find.pmの中に sortをぶち込んでやったよ!!
でも、これ正しい?
388デフォルトの名無しさん:01/10/03 06:06
finddepthってあるだろ。
389えっと:01/10/08 08:23
Windows+PerlでGUIプログラムを組む際に、Win32::GUIと
Perl/Tkモジュールとで迷ってて、でも本格的にやるならWin32::GUIかなと
思っているのですが、資料が少なくて困っています。
解説サイトや参考書でいいのがあったら教えてください。
390デフォルトの名無しさん:01/10/08 11:27
困ってますだと?
努力してないだけだろ!
391デフォルトの名無しさん:01/10/08 13:09
>>389
Perl/Tk話題とかは、こっちでネタふりきぼん。
wxWindows-Perlの話題とかでてたし。
http://ebi.2ch.net/test/read.cgi/php/991313362/
(webプログラミング板は人が少ないのよねん)
use Windows;

・・?
393デフォルトの名無しさん:01/10/10 10:25
ペールは変態的に読みズらいソース書くのに適してるネ!
394デフォルトの名無しさん:01/10/10 10:35
>>394
ただのtipsじゃん・・
396つーか:01/10/11 03:49
RubyのソースってVB見たいですね。(御ワラ
397デフォルトの名無しさん:01/10/11 03:53
CPANにあがってるPerlのモジュールって
ラリーさんが「これはっ!」って思えば標準モジュールに
昇格するんでしょうか?
現在の標準モジュール自体がそうゆう経緯で標準になったのかな?
つーかハイジたんの一存だったりして。
>>397
決めるのはLarryじゃなくてパンプキング(pumpking)じゃないのかな。

ハイジたんはPerlに思想的な影響は与えてるけど、
実装には寄与してないと思われ。

マジレスでスマソ。
399デフォルトの名無しさん:01/10/11 05:32
>>396
RubyのソースってどうみてもC言語ですが、、、
ソース自体は汚い
400396:01/10/11 10:10
>>399
プログラマ失格で砂。
>>396>>399 が言ってる「ソース」の意味がそれぞれ違うん
だろうけどな。
402401:01/10/11 10:38
それにしても、VB 見たいというのもどうかと思うが。
403デフォルトの名無しさん:01/10/11 11:04
404 :01/10/11 11:13
みんな変数の名付けばらばら事件
405デフォルトの名無しさん:01/10/11 11:16
1行に一番詰め込んだ人が偉い大会
406APL:01/10/11 11:27
>>405
ふっ。まだまだ。
407デフォルトの名無しさん:01/10/11 11:51
実はCGIとPerlを混同しちゃってた人の数→(1001)
408デフォルトの名無しさん:01/10/11 12:33
Inline.pmってCのソースを埋め込めるらしいけど、
Cのソースはヘッダーファイルにして「include」って
できないかなぁ?
409デフォルトの名無しさん:01/10/11 16:22
410デフォルトの名無しさん:01/10/11 20:26
perlのステップカウンタとかないかな?
cgiの処理行数とかをチェックしたいんだけど。
winで動くのキボン
411あぼーん:あぼーん
あぼーん
412あぼーん:あぼーん
あぼーん
413あぼーん:あぼーん
あぼーん
414あぼーん:あぼーん
あぼーん
415あぼーん:あぼーん
あぼーん
416あぼーん:あぼーん
あぼーん
417あぼーん:あぼーん
あぼーん
418Ruby厨な人:01/10/11 22:56
最近、上げたり調子に乗ってやがるな > このスレの奴ら
いい加減にしろよ。お前らは三流以下の人間だということを忘れるな。
>上げたり調子に乗ってやがるな
日本語にちょっと似てるな。どこの言葉だ?
420あぼーん:あぼーん
あぼーん
Ruby好きな人たちも大変だね、末端にこういう子がいると。
>>421
済まねぇ。
423デフォルトの名無しさん:01/10/12 04:03
>>409
まさにピンポイントな情報をThanks!!!

>>ルビ厨
ごくろうなことで。(御ワラ
424あぼーん:あぼーん
あぼーん
425あぼーん:あぼーん
あぼーん
426あぼーん:あぼーん
あぼーん
427あぼーん:あぼーん
あぼーん
428あぼーん:あぼーん
あぼーん
429Ruby厨な人:01/10/12 04:11
この下層民が。(笑)
430デフォルトの名無しさん:01/10/12 04:57
RubyってPerl6が出たらPerlに勝てるところなくなっちゃいますね!
煽ってるの?
勝つとか負けるとかなんてどうでも良いじゃん。
>>430
ソースマージしてたりして
>>430
つーか、Perl6がRubyからたくさん学んでいることを忘れるな。
Perl派のおいらとしてはRubyに感謝するばかり。
434 :01/10/12 10:44
XはZを参考にしたのに、同じくZを参考にしたYが、
「Xはうちのパクリ!」と馬鹿丸出し&自意識過剰なことを言いましたとさ ( ´−`)
435デフォルトの名無しさん:01/10/12 22:24
>>433
Rubyで参考にしたい所ってあるのか?
436デフォルトの名無しさん:01/10/12 22:36
つーか、PERLもRUBYもCGI以外に使い道が無いところが
すごいよね
perlは使い道たくさんあるけど、
rubyはなあ・・
rubyまじめに使ってる人って、回りで見たこと無いんだけど。
なんだか信者ばっかり量産してる気がする。
438デフォルトの名無しさん:01/10/12 22:40
perlって何に使えるんですか?
439デフォルトの名無しさん:01/10/12 22:42
rubyて何に使えるんですか?
440PERL信者:01/10/12 22:42
どっちもCGIにしか使えないよ
>>440
君は、ね。
>>441
おまえもな
■■■■■■■■■■■■■■■■■■■■■■■
            終了
■■■■■■■■■■■■■■■■■■■■■■■
444名無しぱる:01/10/14 04:21
>>438
パールはスクリプトなので、色々クラッ●に使われるらしい
445ノエル:01/10/14 08:31
SoftICEの使い方を教えてください。
446デフォルトの名無しさん:01/10/14 10:35
コンソールから perl を起動すると、入力待ちモードになりますよね、
そこで perl スクリプトを入力できるのですが、入力したコードを実行
するのはどうしたらいいのでしょうか?
447 :01/10/14 12:36
Ctrl+D じゃないの?
448446:01/10/14 20:06
>>447

Win の Active Perl なんですが、DOS ウィンドウから

C:WINDOWS>perl
print '名字を入力してください:';
chomp($name1 = <STDIN>);
print '名前を入力してください:';
chomp($name2 = <STDIN>);
print "こんにちは,$name1$name2さん";

こんな風に書いて、Ctrl - z で実行してるのですが、うまく実行されないです。
print 文のところが、表示される場合と表示されない場合があるんです。

あと、入力したコードをファイルに保存したりは出来ないのでしょうか?
なんか根本的に間違ってないか?
<STDIN>
メモ帳でコードを書いて "446.pl" と名前を付けて保存。
実行は。
>perl 446.pl
451446:01/10/14 20:52
>>449
そうなんですか?
コードの部分はコピペなんで、細かい処理のことは分かりません。
よろしかったら詳しく教えてください。

>>550
ワンライナーとか、ファイルから実行とかは、初心者向けホームページ等
でも解説してあるから、理解しているつもりです。

コマンドラインで記述した perl コードを実行する方法を知りたかったのです
が、[Ctrl - z] とやるのが一般的なのでしょうか?

eval(); と書くと実行されるとか、ピリオドだけの行を書くと実行されるとか、
そんな感じかと思ってました。
452デフォルトの名無しさん:01/10/14 21:04
__END__
Python や Ruby の irb のような対話的実行がしたいわけ?
454446:01/10/14 21:35
>>452
それです! ありがとうございました。
__END__ の他のバリエーションはあるのでしょうか?
例えば、入力したコードをファイルに保存してから実行とか。

>>453
debug モードで実行するのですよね?
他に対話的実行を行なう方法があったら教えてください。

コマンドラインだと行ごとにしか編集できないのでしょうか?
だから、コマンドラインから実行する方法はあまりメジャー
ではないのでしょうか?
455 :01/10/14 21:39
対話的Perlなら >>356 >>357 にあるよ。
Psh ( is Perl Shell ) というモジュールが CPAN にあるね。
457デフォルトの名無しさん:01/10/14 22:26
こういうモジュールはどうだろう。

・行頭に数字(これを行番号と呼ぶ)を付けてコードを逐次入力していく
・行番号順にソートされた形でコードは格納される。
・行番号は連続している必要はなく、むしろ挿入を容易にするため最初は10刻みぐらいを推奨。
・runという擬似命令で、行番号順にソートされた一連のコードがevalされる。
・saveという擬似命令で(……以下略
use BASIC;
>>457
どうだろう。
ッテイワレテモナ…
>>457
それって、エディタ使ったほうが楽なんじゃねーの?
試みとしては面白いかもな。
遊び以外で使えるとは思えんが。
462457:01/10/14 22:59
>>458
素敵なモジュール名考えてくれてありがとう。それ採用。
昨日の朝の時点での18日3時の予想と、
今朝の時点での18日3時の予想とが全く重なりませんな…。
すでに、30%のケースに入っているということか。
464デフォルトの名無しさん:01/10/17 06:34
Perlで変数を読み出し専用にするのはどうするんですか?

例えば、$pi=3.141592654;
と宣言しておいて、以降、変更禁止にする方法はありますか?
use constant PI => 3.1415;
or
perldoc perltie
sub STORE{ die("read-only") }
tied variableって世界があるんですね…。知りませんでした。
ちょっと世界が広すぎるのでパス(^^;;

で、use constant PI => 3.1415;
こっちの方が簡単そうです。

ただ、早速print "PI";としたところ、期待通りに作動しないのであせりました。
perldoc constantを見ると、
print "@{[PI]}";
とするみたいですね。 なぜこれがそうなのかは分からないのですが、おまじないとして覚えておきます。

#しかし何故constantプラグマについて青ラクダに記載がないのでしょうか?
467 :01/10/17 11:22
>なぜこれがそうなのかは分からないのですが、
Cの#define とは違って、PIはただの関数だからです。
@{[ HOGE ]} は、"" の中でHOGEに入る式を評価したいときによく使う手法。
print "1 + 2 = @{[1 + 2]}" とか。

>#しかし何故constantプラグマについて青ラクダに記載がないのでしょうか?
第二版のことなら、5.003について書かれているからじゃない?
Constantはたしか5.004からだったような。
日本語版のまだない第三版なら載ってるんじゃないかなぁ。
>>464
$piをreadonlyにする程度なら、
*pi = \3.141592654;
のほうが簡単かも。
469464:01/10/17 17:00
>>468 ごめんなさい。全然わからないです。どう使うのですか?
青ラクダ本の世界って、もうとっくに時代遅れ??
470468:01/10/17 17:32
>>469=464
青らくだ本、いま手元にないけど、これぐらい載ってない?

 $pi = 3.141592654; $pi += 0; # 3.141592654
 *PI = \3.141592654; $PI += 0; # error!

同じPIの例が、perldoc perlmodでも引ける。Check it!
471デフォルトの名無しさん:01/10/18 10:23
>>469
書籍というメディアのサガですな。合わせて「Perlクイックリファイレンス」あたりを手元に置いておくと便利よ。

新しいラクダ本は近藤さんが一生懸命(たぶん)翻訳してるからそのうち日本語版も出てくるっしょ。
んでもデフォルトはperldoc読んどけって事で。
472デフォルトの名無しさん:01/10/21 16:32
Perlのオブジェクト指向は不完全だとよく言われますが、
どのあたりが不完全なのでしょうか?
473デフォルトの名無しさん:01/10/21 18:21
CPANでinstallってみんな問題なく成功してます?
Net::TelnetとかXML::DOMなんかを入れるのに初めてつかったんだけど、
なんだかテストでコケまくるんですけど・・・。
結局、コマンドの頭に"force"をつけて無理やり入れちゃってますが、
なんか嫌な感じ。

Perl本体をRPMパッケージじゃなくてソースコードからビルドしても
同じですね
エラーメッセージを書いてくれたら、何か助言できるかもしれない。(出来ないかもしれない)

例:
Perlインタプリタのmake testでpragma/constant.tのテスト34が失敗した。
-> ただ単にエラーメッセージが日本語になっていたので" "にマッチしなかっただけ
-> 無視しても何ら害なし

例:
Net::FTPをインストールしようとperl Makefile.PL, make, make testしたら
t/require.t のテスト3-5が失敗した。
-> Net::PH, Net::Cmdがインストールされていない
-> CPANから取ってきて(以下略)
>472
Javaみたくprivateとかprotectedとかがないからかなあ。
476デフォルトの名無しさん:01/10/22 16:40
>>472
良く言われるのか?
Rubyの開発者まつもと氏はjfであたりで、Perlも十分にオブジェクト指向の機能を備えている」とか言ってたぞ昔。
不完全と言うよりむしろ「とって付けた」感がぬぐえない。
手軽に、積極的に使っていこうという気にさせないところが×。
478デフォルトの名無しさん:01/10/22 16:48
>>478
荒らし依頼ですか?
480デフォルトの名無しさん:01/10/22 19:27
>>477
どんなところに「とって付けた」感が醸し出されてるんですか?
>>480
クラスを定義する構文(class hoge {...}等)が言語仕様として存在せず、
膨大なシンタクスシュガーと慣用句でそれらしく見せてるあたりかな?
おれは好きなんだけどね。
>>480
どんなところって・・・。
全部だよ、全部。
483472:01/10/22 20:26
俺としては、オブジェクト指向を強要しないところが好きです。
>Perl
ただ、言語仕様としてオブジェクト指向がサポートされていたら
もっといいかとは思います。
484デフォルトの名無しさん:01/10/22 20:27
っていうか、ユーザ定義型が無い。
なんとかコンパイル時に型チェック(パッケージチェック?)
してくれるようにならんかのう。

でもPerl好き。10-2000行くらいのしか書いたこと無いけど。
485デフォルトの名無しさん:01/10/22 20:30
>>481
言語仕様として
  package ClassName;

でクラスを定義することになっているのだが...
サブクラスは
  package ClassName;
  use base 'BaseClassName';

ね。

JavaとかC系列の(含むPHP)
  class ClassName {}
  class ClassName extends BaseClassName {}

Rubyの
  class ClassName
  class ClassName<BaseClassName

Pythonの
  class ClassName:
  class ClassName(BaseClassName):

なるほど、メジャーと言われる言語の多くは class というオペレータが備わっているけど、Perlの場合はclass以外のオペレータが割り当てられているから気持ち悪いって話なのかな。
言語仕様は言語仕様と割り切って頭の中で s/class/package/ して使うだけなんだが。
# smalltalkが上がって無いぞとかの突っ込みは勘弁。
486デフォルトの名無しさん:01/10/22 20:57
>>484
ユーザ定義型はオブジェクト指向とはちょっと別の話だと思うけど。一般的に暮らすがその役割を担ってない?
コンパイル時型チェックは確かにその通りですね。最近追加された
my ClassName $instance = ClassName->new;

とかも実行性能を稼ぐためのコンパイラへのヒント止まりだし。でもUnitTestと統合した開発では無視できる問題かもよ。

my @instance;
for my $class (qw(ClassA ClassB ClassC)) {
push @instance, $class->new;
}

とかやり放題なあたりは捨てがたいなぁ。
487デフォルトの名無しさん:01/10/22 20:59
>>484
use fieldsで近いことが出来るね。
my ClassName $self = $_[0];
と組み合わせて。
>>485
その点でPerlの他のを比べると微妙に違わないか。
たとえばpackageってネストできたっけ?

おれは5のdereferenceの書き方がなんとなくイヤで挫折したんだが。
489487:01/10/22 21:01
あ、被った。
490デフォルトの名無しさん:01/10/22 21:17
>>488

ネストってJavaで言うところのインナークラスのこと?

package Example;

sub new
{
   my $class = shift;
   bless {}, $class;
}

sub get_instance_from_inner_class
{
   my $self = shift;
   {
      package Inner;
      sub new
      {
         my $class = shift;
         bless {}, $class;
      }

      sub hello
      {
         my $self = shift;
         printf "Hello World: %s\n", ref $self;
      }
   }
   return Inner->new;
}

sub hello
{
   my $self = shift;
   printf "Hello World: %s\n", ref $self;
}
1;
__END__


% perl -MExample
$example = Example->new;
$inner = $example->get_instance_from_inner_class;
$example->hello;
$inner->hello;
__END__

これでどんぞ。
491481:01/10/22 21:24
>>488
packageはクラスというより名前空間を定義するキーワードで、
ネストはできないよな。他の言語となにか違うってのに同意。
でもここまで違うと、かえって混乱しなくていいのよ。俺としては。
PerlにJava風あるいはC++風なシンタックス与えてまでOOする必要ないと思ってるし。
492デフォルトの名無しさん:01/10/22 21:40
そもそもネストが必要な状況ってどれだけあるのだろう。
ってゆーか「ネストしたクラスの定義」はオブジェクト指向言語の必須条件だっけ?違うよね。
493484:01/10/22 21:54
>>486
ああ、オブジェクト指向の話はしておりませぬ。
よく見ると483の話を受けてって見えますな。

あと、ユーザ定義型がないというのも嘘ですな。
言いたかったのはユーザ定義型のリファレンスで型が保持されてないんで、
コンパイル時チェックが出来ーん、そんなのは型じゃねぇ、
という心の叫びがそう打たせたのです。

my パッケージ? 変数名
っていう書き方が出来るのか。知らなかった。
でもヒントにしかならんのか。

>>487
おお、それですよそれ。
5.005からは使えるみたい。
494484:01/10/22 22:58
>>487
ぐふ。やはり本当にfieldしか使えん。
メソッドで同じようなことしてくれるものはないかのう。
495デフォルトの名無しさん:01/10/22 23:07
Perlのオブジェクト指向でもっとも有効なのは、徹底的な動的バインディングをサラッと書ける点じゃないのかな

オブジェクトとメソッド
クラスとコンストラクタ
メソッドそのもの

性的な言語でこれしようとするとスゲー疲れるんだけど、コンパイル時の型チェックは確かにあったらうれしい。でもこの動的な特性で満足しちまうな。
496デフォルトの名無しさん:01/10/22 23:38
おっ、ガラクタ言語Perlが大好きな厨房共が今日も集まっとるのお
497デフォルトの名無しさん:01/10/23 06:37
perl5って perl4 以前よりかなり重くなっていませんか?
32bit化したperl5を入れてみたんですが16bit perl4 のほうが
かなり高速なカンジ…
削除依頼済み。
sageなさい。カスども
>>498 なにこの人。気味悪う。まあsageろというならsageますがね。
500デフォルトの名無しさん:01/10/23 12:45
>>498は誤爆かキティかの二者択一です。
>>498 削除依頼なんか出ていないぞヴォケ!!こにチンカス ハッタリ野郎がぁ!!
http://teri.2ch.net/test/read.cgi/saku/983679716/n108-
(・∀・)ツレタ!
>>502はつったさかなにひきこまれた   ● 2点
504>502:01/10/23 16:36
(・∀・)カエレ!
505デフォルトの名無しさん :01/10/24 04:26
あの〜perlが計算間違えるんだけど・・・。
あきらかに違ってるんだけど。プログラムが計算間違える事ってあるの?
$g=25425425124%241;
print "$g\n";
で0を返してくる
506デフォルトの名無しさん:01/10/24 04:30
$g=25425425124%241;
print "$g\n";
__END__
75

環境は?
507デフォルトの名無しさん:01/10/24 04:31
Apache@win98です。
mod_perl ?
つーか単に変数名を間違えているだけに 1000 ラリー。
509デフォルトの名無しさん:01/10/24 04:36
別のサーバーにおいたら14って返ってきた・・・意味不明・・
510デフォルトの名無しさん:01/10/24 04:38
#!/usr/local/bin/perl
print "content-type: text/html\n\n";

$g=25425425124%241;
print "$g\n";

単にこれだけしか書いてません。
75が正解
問題を簡単にしましょう。 $g= 5 % 3; にしてみたらどうなりますか?
513無限多倍長整数演算パッケージ:01/10/24 10:55
これはあれだ。サイズの問題です。
25425425124 がintの大きさを越えているんだと思います。
単純な四則演算ではこんな問題は起こさないのにね…。

use Math::BigInt;
$g = Math::BigInt->new(25425425124) % 241;
print "$g\n";

ってやってみて下さい。
514バグか仕様か?:01/10/24 11:17
$h = 25425425124 - 241 * int 25425425124 / 241;
print "$h\n";

だと、問題なく正解を出しますね。 剰余演算 に固有の問題のようです。
環境を教えてください。
516514:01/10/24 12:26
私は505 ではないのですが、OSはlinux(Vine2.0)で、
perl-5.00503_jp-5
glibc-2.1.2-17vl2
です。
sizeof(int)は4 sizeof(long int)も4です。
517デフォルトの名無しさん:01/10/24 12:55
>>516
Perl5.6.1のperldeltaに情報見つけ。"Numeric conversions"のとこ。
やはりバグだったようです。
518デフォルトの名無しさん:01/10/24 15:26
version 5.004_04
version 5.005_03
あたりは 14が帰ってくるね。
>>517
が見つけた通り
version 5.6.0, 5.6.1では正しく75

っちゅーかstableなのを使えって気もする。
505で書き込んだ者です。

プログラムの間違いではなかったのですね。
(ってこんな短くて間違いようがないですが)

アドバイスされたように書き換えてみます!
520   :01/10/25 00:26
my $name = 'tinko pinpin';
1)
if($name eq 'tinko pinpin') {
 cnt++;
}
--------と
2)
cnt++ if($name eq 'tinko pinpin');

をループさせて速度を測ったら
1)21 wallclock secs (20.95 usr + 0.01 sys = 20.96 CPU)
2)10 wallclock secs (10.23 usr + 0.00 sys = 10.23 CPU)
くらい違いますが、内部ではどのような処理の違いがあるんですか?
2のほうが行数が少ないから
$name eq 'tinko pinpin' and ++$cnt
ならもっとよい。
程度低い話ですな(大爆笑)
言語仕様の綺麗さと綺麗にプログラムを組むことって違うような。。
んで自分のアホさ加減に気付いてPerl初心者板かいな (嘲笑
ちょっと態度デカくなってんのがイイ  高卒専用板で聞いて下さい(プ
http://ebi.2ch.net/test/read.cgi/php/1003900311/17
↑なんだお前?気持ち悪っ!
527デフォルトの名無しさん:01/10/25 16:23
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< オマエモネー
  (    )  \_____
  | | |
  (__)_)
528デフォルトの名無しさん:01/10/26 08:04
初心者な質問ですみません。
djgppのperl5を使っているのですが
bashの環境変数が展開されなくて少し困っています。
sh スクリプトは問題なく環境変数を展開するのですが…。
perlには何か特別な設定が必要なのでしょうか?
529デフォルトの名無しさん:01/10/29 17:10
Windows2000+ActivePerlでマルチスレッドプログラミングをするとき、
Threadモジュールは未完成なので、Win32::APIを使ってやろうかと
思うのですが、どう思いますか?
識者の意見を聞かせて下さい。
530デフォルトの名無しさん:01/11/02 14:55
hage
531デフォルトの名無しさん:01/11/02 16:28
PerlのGDモジュールはもうgifをサポートしないのでしょうか?
もうgifって無断で使っても金請求されないようなことを聞いたのですが。
532デフォルトの名無しさん:01/11/02 18:13
>>531
>もうgifって無断で使っても金請求されないようなことを聞いたのですが
ほんと?嬉。情報元おしえてー。

GDライブラリ(libgd等)がまたGIFサポートするようになれば
とうぜんGD.pmも追随すると思います。
533531:01/11/03 00:34
>>532
>ほんと?嬉。情報元おしえてー。
ソースはないです。勤務先で誰だかに聞いた話だと思いました。(かなり曖昧)
内容的には、gifの圧縮形式の特許を取っている会社はもう特許の期限(?)が
切れるとかで、今のうちに搾り取って置くんだいみたいな感じでした。
それが去年の暮れくらいの話でした。

>GDライブラリ(libgd等)がまたGIFサポートするようになれば
>とうぜんGD.pmも追随すると思います。
なるほど、GDライブラリ自体はC言語か何かで書かれているんでしたっけ。
gifはやっぱりpngよりも広く出回っているし、サポートしてほしい所です。
>>533まだだ。あと数年ある。
GIF はこのまま消えてほしいんだけどね。
536531:01/11/03 16:19
>>534
あいやーやっぱガセネタでしたか。
537デフォルトの名無しさん:01/11/20 12:34
538デフォルトの名無しさん:01/11/21 20:02
Filter::decrypt で復号してから実行するようなperlスクリプトを
見たのですが、暗号化はどうやってやるのでしょうか?おしえてください。
539デフォルトの名無しさん:01/11/21 20:06
gif特許は2003〜2004年までだったような
540デフォルトの名無しさん:01/11/22 02:21
だね
pngはその役目を終えた・・・。
ってなるのでしょうかぁ。
PNGを脅かす (さない?) Appleの特許
http://slashdot.jp/article.pl?sid=01/11/20/202253&mode=thread
543デフォルトの名無しさん:01/11/26 02:11
Perl最強!
544デフォルトの名無しさん:01/11/26 02:15
>>539
それって、日本ででもですかね?
特許の期限って、国ごとに違いますよね。
よくは分からないけど
特許は延ばせたような・・・・
546デフォルトの名無しさん:01/11/26 16:43
>>1
ケプラーの方程式って解けるの?
547デフォルトの名無しさん:01/11/27 18:31
いまさらながら質問がありますあげ。
548デフォルトの名無しさん:01/11/27 18:36
socketの最大受信バイト数を設定したいんですが、
setsockopt関数への引数の与え方がわかりません。
Cでいうところの
int size= MAXSIZE
setsockopt(XX,XX,XX, *size, sizeof(size));

をperlでやりたいんですが、最後の第4、5引数の与え方がわからんです。
local $size=$MAXSIZE;
setsockopt(XX,XX,XX,\$size, 4);
とかやると引数の数が合わん、とおこられます。
packしようにもどうpackすればいいのか・・・
sprintfの仕様を勝手に変えるなよ(T_T)>Larry
550デフォルトの名無しさん:01/11/28 03:10
>>549
どうゆうことですか?
>>550

ああ、勘違いするような書き方してスマソ
Cと同じ関数名を付けながら仕様を勝手に変えるなと書いたの。
>>548
my $size;
$size = getsockopt(S, SOL_SOCKET, SO_RCVBUF) or die "getsockopt: $!";
print "< SO_RCVBUF = ", unpack('i', $size), "\n";
setsockopt(S, SOL_SOCKET, SO_RCVBUF, 1024) or die "setsockopt: $!";
$size = getsockopt(S, SOL_SOCKET, SO_RCVBUF) or die "getsockopt: $!";
print "> SO_RCVBUF = ", unpack('i', $size), "\n";

C/C++でポインタとそれが指している領域の大きさをペアで渡す/返すような
APIの場合、PerlではPerl自身が変数の大きさも知っているため、領域の大き
さをやり取りする必要がない。また、API呼び出しでのポインタはPerlがラッ
プするため、変数そのものでOK。リファレンス渡すAPIってある?

あと、言うまでもないことだけど、
> setsockopt(XX,XX,XX,\$size, 4);
> とかやると引数の数が合わん、とおこられます。
という程度の間違いは、perldoc -f setsockoptすれば気付かないか?
553548:01/11/30 16:24
>>552

ありがとです>詳しい552さん

>という程度の間違いは、perldoc -f setsockoptすれば気付かないか?

すみません。Internal Server Errorと errlogだけを頼りに
デバッグしてました・・・
554デフォルトの名無しさん:01/12/04 12:46
突然、perlを練習するはめになりました。
でもMACだし、プログラムは超初心者だし、
どこから始めればいいのやら。
555デフォルトの名無しさん:01/12/04 19:44
WindowsでPerl使いたいんだけど、
どれダウンロードしてくればいい?
JPerlってどうなの?
556デフォルトの名無しさん:01/12/04 19:54
557555:01/12/04 19:55
>>556
ありがと
558マジレス:01/12/05 23:13
>>554,555
もしこれから就職する学生さんや、新人さんだとしたら
中古のパソコン買って、LinuxでもなんでもいれてそれからPerl
やったほうがいいと思うです。

Perl-> tcsh -> csh -> awk, sed -> bsh
みたいなながれで。(逆行してるか・・・)

今職場でしみじみ感じるのが、やっぱりUNIXで、ダカダカダカッと
コマンド打ち込んで仕事してる人の方が数倍使えるってことです。
tarってなに?とか、viが使えないのでこのサーバには触れません、
とかいう人に囲まれてると、そう思いますです。
559デフォルトの名無しさん:01/12/05 23:23
これからはviの時代なのか
viやらなきゃ..
>>558
ム板で何言ってんだ?
コマンドなんて知ってて当たり前。
言語覚える以前の話だろ。
HSPもやっといた方がいいのか   ドキドキ
>559 edの天下はすぐそこだ!
563デフォルトの名無しさん:01/12/06 01:39
perl初心者だが、
サブルーチンに配列渡したいんだけど、
どうすんの?
下のソースじゃだめっだた。
まじれすでよとすく。


#!/usr/bin/perl

&main ;
exit ;


sub main
{
local ( $array ) ;

$array[ 0 ] = "aaa" ;
$array[ 1 ] = "bbb" ;
$array[ 2 ] = "ccc" ;

arrayTest( $array ) ;
}

sub arrayTest
{
local ( $localArray ) = @_ ;

print "0 = $localArray[ 0 ]\n" ;
print "1 = $localArray[ 1 ]\n" ;
print "2 = $localArray[ 2 ]\n" ;
}
グローバルにすればよひよ 
>>563
My current enviroment doesn't allow me to write in Japanese :-(
Sorry for writing in English. m(_ _)m
But hope this helps.

----------------------------------------------------------------------
#!/usr/bin/perl -w

sub main
{
my @array = ('aaa', 'bbb', 'ccc');
print "main: \$array[$_] = $array[$_]\n" for $[ .. $#array;
print "\n"; test1(\@array); # giving the reference of @array.
print "\n"; test2(\@array); # ditto
}

sub test1
{
;# Here is an example of the type-glob to create an alias of the
;# array passed to this subroutine. Note that the variable
;# 'array' must be defined by using "local," not "my."
local *array = shift;
print "test1: \$array[$_] = $array[$_]\n" for $[ .. $#array;
print "test1: \@array = (@array)\n";
print "test1: \@array[0 .. 2] = (@array[0 .. 2])\n";
}

sub test2
{
;# Also, it's all right to set $array to $_[0] then derefer it as
;# @$array for the whole of it or @{$array}[...] for any slices.
my $array = shift;
print "test2: \$array->[$_] = $array->[$_]\n" for $[ .. $#$array;
print "test2: \@\$array = (@$array)\n";
print "test2: \@{\$array}[0 .. 2] = (@{$array}[0 .. 2])\n";
}

main();
567 ◆KAIN40XE :01/12/06 08:34
>>563
#!/usr/bin/perl

&main ;
exit ;

sub main {
my @array;
$array[0] = "aaa" ;
$array[1] = "bbb" ;
$array[2] = "ccc" ;
&arrayTest(@array);
}

sub arrayTest{
my @localArray=@_ ;
print "0 = $localArray[0]\n" ;
print "1 = $localArray[1]\n" ;
print "2 = $localArray[2]\n" ;
}


そもそもスカラーと配列の書き方が..........
local ( $array ) ; でスカラーをローカル定義して
arrayTest( $array ) ; に渡したときの$arrayの中身は空です。
$array と @array は違います。
568デフォルトの名無しさん:01/12/06 14:52
プログラム板のPerl使いの皆様。
WebProg板にて1chスクリプト改造が行われています。
是非ご参加を。

1chスクリプト解析$改造スレッド
http://pc.2ch.net/test/read.cgi/php/1007607631/
569558:01/12/06 20:08
>>560
そっか。愚痴る板を間違えたか。失礼。
570デフォルトの名無しさん:01/12/08 11:45
ファイルのN行目の削除ってどうすりゃいいの?
1行ずつ読みながら書き込んで、カウンタインクリメントして、
それがNならスキップする、以外の手段無い?
>>570
その方法が一番シンプルでないかい?
カウンタには$.をそのまま使える。

$. == $n || print while <>;

カウンタはclose文でリセットできるよ(←perldoc -f eof参照)。
>>571
むぅ…そうなのか。サンクス。
一発で行くような関数があれば楽だなぁと思ったが。
573571:01/12/08 18:12
>>572
systemを使ってよければこんなのでもできる。一応1行(わら
system(qq[perl -i~ -ne "\$.==$n or print" "$filename"]);

# Windowsだとshellの関係で動かないかも?

$^Iをいたずらするという手は危険すぎるかな。
{
local ($^I) = ''; # バックアップを残したければ'.bak'とか'~'とか……
local (@ARGV) = ($filename);
$. == $n || print while <>;
}
うまくいかんかった。local(*ARGVOUT, *ARGV)とか入れてみたんだが。
574デフォルトの名無しさん:01/12/08 18:40
>>573
無理にやろうとするとよけいに傷が拡がる気配がするので、
素人はループしてなさい、ってことですね(藁
>>572
UNIX 系列(Windows含む)の OS ファイルは
何らの構造も持たない単なるデータの列だからね。
(昔の汎用機はレコード構造を持ったファイルだとかあったらしい。
情報処理の試験くらいでしか見ないが。)
列なので頭から n バイト目という指定はできるけど、
改行がどこにあるのかは読んでみないと分からない。
s/OS ファイル/OS のファイル/
577デフォルトの名無しさん:01/12/09 14:27
>>574
他に方法があるなら理論だけでも聞きたい。
578571:01/12/09 17:47
>>577
行数の上限が1000行とか決まっているなら、
slurpしてspliceしてprintすればいいかも。
File::Slurp使うと吉。

# slurp: ファイル全体を一気に配列に読み込むこと。@lines = <>;
全部1つの変数にいれて、
$line=(split(/\n/,$file))[3]; #4行目が入る
とかどうでしょう。
580デフォルトの名無しさん:01/12/16 01:42
age
581デフォルトの名無しさん:01/12/20 14:33
>>563
サブルーチンに配列渡すときはリファレンスにすりゃいいんじゃない?
それだとマズイ?
582名無しさん@Emacs:01/12/21 17:50
perl を勉強したいんですが、cygwin の perl と Active Perl ってどっちも
同じですか?こっちにしとけ(゚Д゚)ゴルァ っていうのあったら教えてください。
583デフォルトの名無しさん:01/12/21 18:01
>>582

勉強程度ならどちらでもいい。
本格的にやりたいなら、そもそもWindowsなんて使うな。
584デフォルトの名無しさん:01/12/21 18:04
じつはWinよりMacPerlのほうが使い勝手がよかったりする。
スレッドもシグナルもないけど。
>>582
どっちでもほとんど同じスクリプトが使えるからいいんじゃないの?
>585
文字コードのこと考えるのなら ActivePerl とか聞いたような。
587デフォルトの名無しさん:01/12/25 02:44
すいません、WebProgの初心者スレからです。
子プロセスの同時起動数を親プロセスで制限しながら、
子プロセスで処理をしたいと思うのですが、中々上手くいかなのです。

1,
Perlpcによると '-' からのパイプをオープンしてプロセス間通信をしながら
親側で4引き数のSelectを使って、子プロセスからの入力を待つ。
という感じで可能かと思うのですが、これは正しく無いでしょうか。
2,
何となく自分で考えたのが下記の方法なのですが(これで行けそうな感じです)、
(子プロセスの処理開始時にダミーのディレクトリを作成、終了時に削除
を行って、親プロセスでその数を数えて管理しています)
何故か、70回位ループするとsleepの戻り値が0になってしまいその後は
sleepが効かなくなってしまいます。

どなたかご指摘ねがいます。
588デフォルトの名無しさん:01/12/25 02:47
コードです、Perl5.6 on Cygwin で100%再現します、他の環境はいまからテスト
しようと思います。

$| = 1;
opendir (DIR,"./lock/");
while (1){
  $j++;
  $pid = fork();
  if ($pid != 0) {# 親です
    while (1){
      seekdir DIR,0;
      @dir = readdir DIR;
      if (@dir > 10){
        print "子の数が上限値です、3秒待ちます\n";
        if (sleep(3) != 3){
           print "sleep に失敗しました\n"
        }
      } else {
        last;
      }
    }
  } elsif ($pid == 0) {# 子です
    $time = int(rand(10));
    mkdir ("./lock/$j",0666);
    print "これは$j個めの子プロセスです、$time秒の処理をします\n";
    sleep ($time);
    rmdir ("./lock/$j");
    exit (0);
  }
}
closedir DIR;
>>588
> コードです、Perl5.6 on Cygwin で100%再現します、他の環境はいまからテスト
> しようと思います。
linuxじゃまったく問題なさそうだが。
>>587
> (子プロセスの処理開始時にダミーのディレクトリを作成、終了時に削除
> を行って、親プロセスでその数を数えて管理しています)
なんでpidを直接配列で管理しないの?
591588:01/12/25 03:36
皆さん有難う御座います。
>589
本当ですか!、とFreeBSDでもOKでした。ActivePerlだとディレクトリが
キャッシュされるのか、MAXのまま無限ループです (泣
こういった方法は余りよくないのだろうか・・・・
>590
えと、続けて子プロセスを起こしたいからなのですが・・・
正直、良く分かっていないです。
waitを使うと完全waitになってしまって並列処理にならなくて、、、
SIG{PIPE}やSIG{CHILD}もちょっと違うようですし、、、
同時実行(10プロセス)で2000回程度の処理がしたいのです。

linuxならOKと言う事で良いのかなぁ・・
有難う御座います、もう一回読み直してみます => perlpc
592589,590:01/12/25 04:20
>>591
これでどうよ。

$| = 1;
%children = ();
$SIG{CHLD} = sub {
 $p = wait;
 delete $children{$p};
};
while (1) {
 while (scalar(%children) >= 10) {
  print "子の数が上限値です\n";
  sleep;
 }
 $children{$pid = fork()} = 1;
 $j++;
 if (!$pid) {
  $time = int(rand(10));
  print "これは$j個めの子プロセスです、$time秒の処理をします\n";
  sleep($time);
  exit(0);
 }
}
593(* ^ - ^ *)AGE!!:01/12/25 14:54
うわぁ、出来ました先生!>>592様有難う御座います 。

シグナルはこうやって使うんですね、デストラクタみたいと言うか・・・
面白いです。OSが良く分かって無いので、プロセスやシグナルの事が載った本を
読もうと思います。
今回は、失敗してプロセステーブルが溢れたり、ファイルに書き出しながらループ
してしまってファイルシステムが壊れたりと半鳴きだったのです。
上手く行って嬉しいので、次はプロセス間通信に挑戦します。
有難う御座いました && 良いお年を >>592さん
594ばぶ:01/12/30 02:39
こんにちはー。経営板からきた初心者というか全く無知です。自分で旅行サイトつくってるんですけど、
フォームデコードがうまくいきません。チェックボックスで複数選択して目的エリアと希望商品を複数選択して
入力するって作業なんですけど。

sub form_decord {
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else { $buffer = $ENV{'QUERY_STRING'}; }

#--フォームデータを分解--#
@parameters = split(/&/,$buffer);
foreach $element (@parameters) {
($parameter, $value) = split(/=/, $element);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

# SJISコード変換
&jcode'convert(*value,'sjis');

#--正規表現--#
$value =~ s/,/./g;

#--削除データがあれば配列に追加--#
if ($parameter eq 'delno') { push(@DEL, $value); }

#--目的エリアデータを変数に追加(スペース区切り)--#
if ($parameter eq 'street') { $street .= "$value "; }

#--希望商品データを変数に追加(スペース区切り)--#
if ($parameter eq 'hoop') { $hoop .= "$value "; }

$in{$parameter} = $value;
}

$page = $in{'page'};

これでだめだったんですが、なにか間違ってますでしょうか?
よろしくお願いします。
hoopじゃなくてhopeじゃないのか、というのはおいとくとして、
なにがどうだめだったのか、全然分からん。
たぶん、質問の仕方が一番間違ってる。
596デフォルトの名無しさん:01/12/30 03:30
> #--正規表現--#
> $value =~ s/,/./g;

このコメントが微笑ましいと思った
597ばぶ:01/12/30 04:23
すいません。足りませんでした。複数選択すると、最後に選択したものしかデータに反映されてこないんです。
例えば、目的エリア関東、九州と選択して掲示板に登録したとすると、九州だけしか登録されてないのです。
どうしてもわかりません。お願いします。
フォームの内容を欠け
defineな変数をどんどん上書きしてるんだと思うが
599596:01/12/30 04:31
目的のエリアの値を取得するときってどうしてる?

$in{'street'} で取得したらきっと、>>597に書いてある風な感じになると思うな。
代わりに$streetで取得したらうまくいくような行かないような。

なんか外してそうだが。
600596:01/12/30 04:33
ちなみに、おいらはcgiは書かんから、599で書いたことはチョット適当。


     | ̄\     \          (´´
     |   |: ̄ ̄ ̄ ̄:|       (´⌒(´
     |   |:      .:| ≡≡≡(´⌒;;;≡≡≡
     |   |:      .:|≡≡(´⌒(´⌒;;
              (´⌒(´⌒;;
           ズザーーーーーッ


   _____
 /:\.____\
 |: ̄\ (*゚ー゚)\  <600 GET!
 |:   |: ̄U U ̄:|


        バタン !!
 _______
 | ̄\     \
 |   |: ̄ ̄ ̄ ̄:|
 |   |:      .:|
 |   |:      .:|
601ばぶ:01/12/30 04:39
フォームの内容はこんな感じです。
<tr><td nowrap align="right" valign="top">登録エリア/</td>
<td nowrap><input type="checkbox" name="street" value="北海道">北海道
<input type="checkbox" name="street" value="東北">東北
<input type="checkbox" name="street" value="関東">関東 <br>
<input type="checkbox" name="street" value="信越">信越
<input type="checkbox" name="street" value="北陸">北陸
<input type="checkbox" name="street" value="東海">東海 <br>
<input type="checkbox" name="street" value="近畿">近畿
<input type="checkbox" name="street" value="中国">中国
<input type="checkbox" name="street" value="四国">四国 <br>
<input type="checkbox" name="street" value="九州">九州
<input type="checkbox" name="street" value="沖縄">沖縄 <br>
<input type="checkbox" name="street" value="東アジア">東アジア
<input type="checkbox" name="street" value="東南アジア">東南アジア
<input type="checkbox" name="street" value="中央アジア">中央アジア <br>
<input type="checkbox" name="street" value="中東">中東
<input type="checkbox" name="street" value="アフリカ">アフリカ
<input type="checkbox" name="street" value="西ヨーロッパ">西ヨーロッパ <br>
<input type="checkbox" name="street" value="東ヨーロッパ">東ヨーロッパ
<input type="checkbox" name="street" value="北米">北米
<input type="checkbox" name="street" value="太平洋">太平洋 <br>
<input type="checkbox" name="street" value="オセアニア">オセアニア
<input type="checkbox" name="street" value="その他の地域">その他の地域 </td>
</tr>

<tr><td nowrap align="right" valign="top">おもな販売商品/</td>
<td nowrap>
<input type="checkbox" name="hoop" value="国内宿泊">国内宿泊
<input type="checkbox" name="hoop" value="海外宿泊">海外宿泊 <br>
<input type="checkbox" name="hoop" value="国内航空券">国内航空券
<input type="checkbox" name="hoop" value="海外航空券">海外航空券 <br>
<input type="checkbox" name="hoop" value="国内パッケージツアー">国内パッケージツアー
<input type="checkbox" name="hoop" value="海外パッケージツアー">海外パッケージツアー <br>
<input type="checkbox" name="hoop" value="その他">その他 </td></tr>
602ばぶ:01/12/30 04:42
変数はこんな感じです。
#--変数をセット--#
$name = "$in{'name'}"; # 事業所名
$state = "$in{'state'}"; # 所在地
$shihon = "$in{'shihon'}"; # 資本金
$manager = "$in{'manager'}"; #ご担当者名
$tel = "$in{'tel'}"; #ご担当者名
$mail = "$in{'mail'}"; # メールアドレス
$hp = "$in{'hp'}"; # HP
$area = "$in{'area'}"; # 販売エリアの有無
$street = "$in{'street'}"; # 目的地エリア
$hoop = "$in{'hoop'}"; # おもな販売商品
$comment = "$in{'comment'}"; # 会社概要・取り扱い商品概要等
$id = "$in{'id'}"; # ID
$pass = "$in{'pass'}"; # PASS
603596:01/12/30 04:44
$street = "$in{'street'}"; # 目的地エリア
$hoop = "$in{'hoop'}"; # おもな販売商品

たぶん、この二つ外せばうまくいく
604ばぶ:01/12/30 04:48
ありがとうございます。やってみます。
605ばぶ:01/12/30 05:06
うーん。やっぱりだめでした。データにも1個しか登録されてません。
他に考えられることってなにがあるでしょうか?
登録する処理行ってるところのソースも見ないとよく分かんないね。
607ばぶ:01/12/30 05:19
sub regist {
if ($in{'name'} eq "") { &error("事業所名を記入してください"); }
elsif ($in{'state'} eq "") { &error("所在地を記入してください"); }
elsif ($in{'area'} eq "") { &error("販売エリアの有無を選択してください"); }
elsif ($in{'tel'} eq "") { &error("TELを記入してください"); }
elsif ($in{'mail'} eq "") { &error("メールアドレスを記入してください"); }
elsif ($in{'mail'} !~ /.+@.+\..+/) { &error("メールアドレスが不正です"); }
elsif ($in{'hp'} eq "") { &error("HPアドレスを記入してください"); }
elsif ($in{'street'} eq "") { &error("登録エリアを選択してください"); }
elsif ($in{'comment'} eq "") { &error("メッセージを記入してください"); }
elsif ($in{'id'} eq "") { &error("IDを入力してください"); }
elsif ($in{'id'} =~ /\W/) { &error("IDは半角英数のみで入力してください") }
elsif ($in{'pass'} eq "") { &error("PASSを入力してください"); }

#--変数をセット--#
$name = "$in{'name'}"; # 事業所名
$state = "$in{'state'}"; # 所在地
$shihon = "$in{'shihon'}"; # 資本金
$manager = "$in{'manager'}"; #ご担当者名
$tel = "$in{'tel'}"; #ご担当者名
$mail = "$in{'mail'}"; # メールアドレス
$hp = "$in{'hp'}"; # HP
$area = "$in{'area'}"; # 販売エリアの有無
$street = "$in{'street'}"; # 目的地エリア
$hoop = "$in{'hoop'}"; # おもな販売商品
$comment = "$in{'comment'}"; # 会社概要・取り扱い商品概要等
$id = "$in{'id'}"; # ID
$pass = "$in{'pass'}"; # PASS

#--タグを取り除く--#
if ($tagkey) {
$name =~ s/</</g;
$name =~ s/>/>/g;
$state =~ s/</</g;
$state =~ s/>/>/g;
$shihon =~ s/</</g;
$shihon =~ s/>/>/g;
$manager =~ s/</</g;
$manager =~ s/>/>/g;
$tel =~ s/</</g;
$tel =~ s/>/>/g;
$mail =~ s/</</g;
$mail =~ s/>/>/g;
$area =~ s/</</g;
$area =~ s/>/>/g;
$hp =~ s/</</g;
$hp =~ s/>/>/g;
$comment =~ s/</</g;
$comment =~ s/>/>/g; }
608ばぶ:01/12/30 05:19
#--改行コードをHTML化--#
if ($write_on){
$comment =~ s/\r\n/<br>/g;
$comment =~ s/\r/<br>/g;
$comment =~ s/\n/<br>/g;
} else {
$comment =~ s/\r\n//g;
$comment =~ s/\r//g;
$comment =~ s/\n//g;
}

#--PASSを暗号化--#
$m_pass = crypt($pass, "xx");


&lock1;
if ($area eq "0") {
if (!open(IN,"$nonlimitedfile")) {
&lock2;
&error("$nonlimitedfile ファイルオープンエラー");
}
}
elsif ($area eq "1") {
if (!open(IN,"$limitedfile")) {
&lock2;
&error("$limitedfile ファイルオープンエラー");
}
}

$line = <IN>;
($r0,$r1,$r2,$r3,$r4,$r5,$r6,$r7,$r8,$r9,$r10,$r11,$r12,$r13,$r14,$r15) = split(/\,/, $line);
#--既に同じIDが使われていないかチェック--#
if ($r14 eq "$id") {
&lock2;
&error("ご希望のIDは既に他の方が使用されています");
}
609ばぶ:01/12/30 05:21
#--最新の記事ナンバーをつける--#
$r0++;
$no = "$r0";
close(IN);

#--データを整形--#
$format = "$no,$name,$state,$shihon,$manager,$tel,$mail,$hp,$area,$street,$hoop,$comment,$date,$H_A,$id,$m_pass\n";

#--エリア限定なしの場合の登録処理--#
if ($area eq "0") {
&nonlimited_read("lock2");
$num = unshift(@DATA, $format);
if ($num > $maxlog) { pop @DATA; }

if (!open(OUT,">$nonlimitedfile")) {
&lock2;
&error("$nonlimitedfile ファイルオープンエラー");
}
print OUT @DATA;
close(OUT);
}

#--エリア限定の場合の登録処理--#
elsif ($area eq "1") {
&limited_read("lock2");
$num = unshift(@DATA, $format);
if ($num > $maxlog) { pop @DATA; }

if (!open(OUT,">$limitedfile")) {
&lock2;
&error("$limitedfile ファイルオープンエラー"); }
print OUT @DATA;
close(OUT);
}

&lock2;
610ばぶ:01/12/30 05:22
#--登録完了メッセージ--#
&html_head;
&title;
print <<"HERE";
<center><table width="100%">
<tr><td bgcolor="$top_t_bgc"><center>
<b>登録完了</b></font>
</center></td></tr></table><br><br>
<form method="post" action="$cgifile">
<table cellspacing="0" cellpadding="5" border="1">
<tr><td nowrap bgcolor="#FFFFFF">
<b>会員登録を受け付けました!!</b><br><br>
あなたのIDは「<b>$id</b>」です。<br>
あなたのPASSは「<b>$pass</b>」です。<br><br>

<font color="#CC0033">
会員に交際を\申\し込む場合はID・PASSが必要となります。<br>
また、登録内容を削除する場合は、PASSが必要となります。<br>
どちらもお忘れのないよう、くれぐれもご注意ください。</font>

</td></tr>
</table>
HERE

exit;
}

登録処理はこれで全部です。
チェックボックスのname属性を全部違うものにすればいいのかも。

<input type="checkbox" name="street" value="東北">東北
<input type="checkbox" name="street" value="関東">関東 <br>

<input type="checkbox" name="street_tohoku" value="東北">東北
<input type="checkbox" name="street_kantoh" value="関東">関東 <br>

で、

#--目的エリアデータを変数に追加(スペース区切り)--#
if ($parameter eq 'street') { $street .= "$value "; }

if (index($parameter, 'street') == 0) { $street .= "$value "; }

か。
612ばぶ:01/12/30 05:45
おお、ありがとうございます。やってみます。
if ($parameter eq 'street') { $street .= "$value "; }
   ↓
if ($parameter eq 'street') { $in{street} .= "$value "; }
だろ?
後で上書きしてるがな・・・
つーか何処まで値が入ってるかSTDINから順に確認しなさい
615ばぶ:01/12/30 06:06
611でできました!!ありがとうございます。

613でやったほうがいいんでしょうか?
616ばぶ:01/12/30 06:17
613でもやってみた結果入力されませんでした。
でも、これで安心してねられます。
ありがとうございました。大先生様
617ばぶ:01/12/30 06:24
あとできずいたんですが板チガイだったですね。
それにあげてしまってごめんなさいです。
618名無しさん@Emacs:02/01/16 19:54
すみません。教えて貰えると助かります。

perl script で、標準入力から読み込んだデータを処理することを
考えてます。
標準入力から読み込んだデータの内容によっては、処理内容を
オペレータに問い合わせなければなりません。

ここで、

(1) 処理対象のデータを、
while <> { ... }
として全て処理したあとで、

(2) 内容によっては、
...
close (STDIN); <-- これは後から付け足したんですが、あっても
無くてもダメです。
...
open (TERM, '-');
$getnum = <TERM>;
...
などとして、オペレータに問い合わせようとしているのですが、

(2) の部分で標準入力 (端末入力) から読み込むことができません。
(1) で全て処理してしまってからは、標準入力から読み込もうとしても
eof になってしまうのでしょうか??

解決方法をご存知の方、いらっしゃいませんか??
619名無しさん@Emacs:02/01/16 20:49
>>618

補足します。
618 の script は、

$ cat foo | bar.pl <-- この様に pipe でデータを受け取り、
1. parm1 +
2. parm2 | <-- 例えば、この様に listup して、
: |
n. parmn +
please input number => 1 <-- ここで端末入力を受け取る。
End

みたいな動作をさせたいと言うものです。
パイプやリダイレクトで標準入力を受け取ろうとすると、
以降は (例え close しても) eof しか受け取れないのでしょうか。

# 久し振りに post してますが、navi2ch で改行文字が無視されて
# しまってるみたいですね。いや navi2ch のせいでは無いのかな。
# これも改行が変だと、まともに読めない状態かもしれない。
# もし、そうだったらごめんなさい。
open(TERM, '/dev/tty');
>>619
> # 久し振りに post してますが、navi2ch で改行文字が無視されて
> # しまってるみたいですね。いや navi2ch のせいでは無いのかな。
> # これも改行が変だと、まともに読めない状態かもしれない。
> # もし、そうだったらごめんなさい。
変なのはnavi2chの表示だけだな。
2chの方で最近行頭に空白が入らなくなったらしい。

--- navi2ch-util.el.orig Thu Dec 27 10:52:23 2001
+++ navi2ch-util.el Thu Jan 17 01:06:30 2002
@@ -171,5 +171,5 @@
(insert str)
(goto-char (point-min))
- (while (re-search-forward " *<br> " nil t)
+ (while (re-search-forward " *<br>" nil t)
(replace-match "\n"))
(goto-char (point-min))
@@ -177,5 +177,5 @@
(replace-match ""))
(goto-char (point-min))
- (while (re-search-forward "&" nil t)
+ (while (re-search-forward "&?" nil t)
(replace-match "&"))
(goto-char (point-min))
622デフォルトの名無しさん:02/01/17 01:24
お世話になります。
今日からPerlを勉強しているのですがわからないところがあるのでおしえてください。

$n=2;

while($n <= 100){

$div=2;
$prime=1;
#---------------------------------------------
while($div <= ($n/2)){

if(($n % $div) == 0){
$prime = 0;
Last;
}

++$div;
#--------------------------------
}

if($prime){
print "$n\n";
}

++$n;

}

$div; は#---のスコープ内だけが有効なのですか?
$n が3にカウントされると $divもスコープの下の$div++で+1されると考えたらよろしいのでしょうか?
ぜひ、教えてください。
>>622
> $div; は#---のスコープ内だけが有効なのですか?
んなこたーない。
624デフォルトの名無しさん:02/01/17 01:41
お答えありがとうございます。
Last の 下の$divの値は+1されて再度,whileに戻るのですか?
ぜひ、教えてください。もう少しで解決できそうです。
Last ってなに?
last じゃないの?よく読んでないけど
626名無しさん@Emacs:02/01/17 08:06
>>620

THX!!
解決しました。
何で気が回らなかったんだろう。やっぱり頭が硬いな。
627名無しさん@Emacs:02/01/17 08:35
>>621

こちらも THX!!
2ch の仕様が変って、navi2ch が影響を受けたってことですね。
SourceForge に登録されて CVS に載ってから、あんまり見てなかった
もので。

# しかし proxy が cvs -d:pserver:... を通してくれないので、
# その恩恵を受けらんない。
628デフォルトの名無しさん:02/01/18 01:31
サブルーチン内でopen2を使っている場合、
そのサブルーチンを複数回呼び出すと、
open2に差し掛かった時点で、
プログラムの一番最初に逆戻りしているという変な挙動をするのですが、
誰か、経験したことありますか?解決策はありますか?
629デフォルトの名無しさん:02/01/18 01:41
簡単な例を。
630デフォルトの名無しさん:02/01/18 02:19
sub main{
print "test";
@list={'親','子供','孫'};
foreach(@list){
&hyoji($_);
}
sub hyoji{
$moji = shift;
open2(IN,OUT,through);#throughというプログラムは仮に入力された文字をそのまま出力するとしましょう。
print OUT $moji;

$mojimoji = <IN>;
print "$mojimoji";

close(IN);
close(OUT);
}
汚いですが、こんな感じでjumanというプログラムを
open2で開くとしましょう。(宣言等は気にしないでください)
期待している出力は
test親子供孫 なのですが、
testtest親test親test子供test親test子供test孫
というような出力が返ってきます。謎すぎます。

もし、何かわかればよろしくおねがいします。
間違い
説明文の一行目×juman→○through
632デフォルトの名無しさん:02/01/18 02:43
Perlのバージョンは?
以前Perl初心者スレッドに書かれていたfork()とバッファリング関係の問題だと思う。
バージョンは5です。
過去ログも読んで見ます。
Perl5でも、5.6か5.005.3かで違うとおもう...。
635630:02/01/18 02:56
unixで使っております。
open2 ってforkしてpipeするじゃない?
だから頭でストリームのバッファをフラッシュする
定説ですが・・・
637630:02/01/18 03:00
jperlの5.003かと思われます。
638デフォルトの名無しさん:02/01/18 03:00
639630:02/01/18 03:01
ストリームのバッファをフラッシュするというのは、
どうやって・・・?スマソ。
640636 :02/01/18 03:09
フラッシュしたいファイルハンドルにselectして
secect FH;$| = 1;select STDOUT;
ていうかPerl上級者ってワロタよ>>638
641636:02/01/18 03:10
>>638 は読んだ方が良いよ
642630:02/01/18 03:15
ありがとうございます。
やってみます。
643630:02/01/18 03:37
結局、IO::Handleのautoflush(1)を使って解決できました。
返事をしてくれたみなさまありがとうございました。

プログラムの頭で
use IO::Handle;
STDOUT->autoflush(1);
STDERR->autoflush(1);
を追加しただけです。
644デフォルトの名無しさん:02/01/19 06:40
Perl6の情報キボン
645名無しさん@Emacs:02/01/19 09:25
perl5.6 で unicode 処理ってはやい??
646Damianたん ハァハァ:02/01/19 09:38
>>644
6は面白いぞ。
オペレータオーバーロードに文法カスタマイズと何でも有りだ (あひゃひゃ
取り合えず海苔海苔のグルグルに取り込みまくって、
るび吉の「アレも出来ますコレも出来ます」を黙らせる!!!
但し思いっきり汚くなるだろから、その辺は勘弁な
それと使う前は半年位perlを辞めれ、鬱になるから  (てへっ
人のコード?? 読める訳ネーだろ!!  (・∀・;)わーぃ
>>646
Perlでも読めるコードを書こうと思えばいくらでもかける。
そう思うのはあんたのコードが汚いからだ。
>>647
一概に言えない、Ver違いで演算子が変わるような言語は
暗号製造機だよ
unixをしってりゃ便利な言語ですよ。manで関数マニュアルが引けますし。
perldocで、非ケルンと違いますノン。
651デフォルトの名無しさん:02/01/23 19:11
質問です。

メール件名をMIMEエンコードしようと思って、
CGIファイルと同ディレクトリに「mimew.pl」
を設置して、メールのヘッダ情報記述部分で

$mimew = './mimew.pl';
require $mimew;
$subject = "[カタログ請求]";
$subject2 = &mimeencode($subject);

open (SENDMAIL, "| $nkf | $sendmail -t -n") || die;
print SENDMAIL "To: $recieve\n";
print SENDMAIL "Bcc: $bcc\n";
print SENDMAIL "From: $mail\n";
print SENDMAIL "Reply-To: $mail\n";
print SENDMAIL "Subject: $subject2\n";
print SENDMAIL "Content-Type: text/plain; charset=\"iso-2022-jp\"\n";
print SENDMAIL "Content-Transfer-Encoding: 7bit\n\n";

上記のようにしたのですが、エンコードされません。
なんででしょ?
652デフォルトの名無しさん:02/01/23 19:46
GD.pm の代わりにimagerってモジュール見っけたんですけど、
使っている人いますか?ためしてみたんだけど、日本語フォントが
文字化けしてしまった。
いろいろインストールしなくてもこれだけで画像処理できるから
面白いとおもうのですが。
653iyaaahahhahaa:02/01/24 18:12
うーむボンバーしとけ
身なんんぼぼぼぼぼぼbっぼぼっぼぼぼ
654デフォルトの名無しさん:02/01/24 18:46
>>646
http://starship.python.net/crew/mhammond/pics/kick_camels_but.gif
>>647
「読める」「読めない」でそういうことを語るような状況はどうかと思うぞっっ。
655デフォルトの名無しさん:02/01/26 12:55
>>651
ちゃんとcloseはしたか?
他に気になるところはなさそうだけど。
656デフォルトの名無しさん:02/01/27 23:50
ActivePerl v5.6.1に対応したjperlってどこにあるんでしょ?
初心者なもんで、誰かおしえて〜〜〜
漏れはActivePerl v5.6.1に
http://www.vector.co.jp/soft/win95/util/se043908.html
これ入れて使ってる。
たぶん手の込んだことしなければ問題ないと思う。
658656:02/01/29 03:00
>657
セクス!
ファイルの更新日付がアレだけど、使えるっぽいから大丈夫だね。
ありがと〜!
659デフォルトの名無しさん:02/01/29 18:04
PerlでRubyのRDEみたいな開発環境ないの?
PerlEdit …はどこいったんだろ。

ActiveState の Komodo はいかが?
http://www.activestate.com/Products/Komodo/
661デフォルトの名無しさん:02/01/30 17:06
Win32のActive Perl5.6.1使ってるんですが、
stat()関数と似た動作するものありませんか?
あるディレクトリ内のファイルかディレクトリかを区別したいだけ
なんですが・・・
662デフォルトの名無しさん:02/01/30 17:07
-d
すみません。
perlのtimes関数の
ユーザーCPU時間とシステムCPU時間と違いって何なのですか?
664デフォルトの名無しさん:02/02/01 02:35
さげてしまった・・・。
ユーザ => 自分で書いた部分の実行時間
システム => openとかreadとかOSに任せた部分の実行時間
システムCPU時間はユーザCPU時間に含まれているのですか?
それとも、実際の経過時間は(times)[0]+(times)[1]ってことですか?
timesって0.01の位までしかわからないのですが、
もっと多くの桁が得られる関数ってないでしょうか?
複数回実行するしかないでしょうか。
668659:02/02/01 13:40
>>660
komodoよさそう。
ありがとう
Perlでテキスト編集できるエディタって知らない?
669デフォルトの名無しさん:02/02/02 17:48
レス読まずにレス。

Perl はできるけど正規表現わかりません、って奴
迷わず逝け。
レス読まずにレス、って阿呆は
更に迷わず逝け。
671デフォルトの7子:02/02/02 22:40
WIN2000+ActivePerl

でperl APIを使用したCプログラミングをしようと思っています。
Cのソース上で
#include <perl.h>し
VC付属のコンパイラで
>cl -I\Perl\lib\CORE perltest.c
とすると以下のようなエラーが出てしまいます。
おそらくperl.hで名前解決が出来てないためだと思うのですが、
ご存知の方アドバイスをよろしくお願いします。

**************************
\Perl\lib\Core\perl.h(797) : warning C4273: 'win32_strerror' :
しています。DLL にエクスポートされていると仮定します。
\Perl\lib\Core\dosish.h(111) : warning C4005: 'Stat' : マクロが再定
\Perl\lib\Core\win32.h(305) : 'Stat' の前の定義を確認し
\Perl\lib\Core\perl.h(1755) : error C2061: 構文エラー : 識別子 'pe
ンタックスエラーを起こしました。
\Perl\lib\Core\perl.h(1755) : error C2059: 構文エラー : ';'
\Perl\lib\Core\perl.h(1756) : error C2061: 構文エラー : 識別子 'pe
スエラーを起こしました。
\Perl\lib\Core\perl.h(1756) : error C2059: 構文エラー : ';'
\Perl\lib\Core\perl.h(1757) : error C2061: 構文エラー : 識別子 'pe
エラーを起こしました。
\Perl\lib\Core\perl.h(1757) : error C2059: 構文エラー : ';'
\Perl\lib\Core\perl.h(1758) : error C2061: 構文エラー : 識別子 'pe
ラーを起こしました。
\Perl\lib\Core\perl.h(1758) : error C2059: 構文エラー : ';'
\Perl\lib\Core\perl.h(2246) : warning C4273: 'win32_crypt' : DL
ています。DLL にエクスポートされていると仮定します。
\Perl\lib\Core\perl.h(2356) : warning C4273: 'win32_environ' :
しています。DLL にエクスポートされていると仮定します。
\Perl\lib\Core\perlvars.h(22) : error C2061: 構文エラー : 識別子 '
ックスエラーを起こしました。
\Perl\lib\Core\perlvars.h(22) : error C2059: 構文エラー : ';'
\Perl\lib\Core\perlvars.h(39) : error C2061: 構文エラー : 識別子 '
タックスエラーを起こしました。
\Perl\lib\Core\perlvars.h(39) : error C2059: 構文エラー : ';'
673デフォルトの名無しさん:02/02/02 22:46

Perlとは

PerlとはAd Hocの帝王。
PerlとはAd Hocの狂気。
PerlとはAd Hocの芸術。

Ad Hocが要求される時には最高だが
#なんか適当に作りたいときとか、
Ad Hocが必要ないところでは悪夢である。

そんだけのことだろう。
>>673とは

Ad Hoc覚えたて厨房
Ad Hoc覚えたて厨房
Ad Hoc覚えたて厨房

ですねっ!
675初心子:02/02/06 03:56
正規表現について質問です。よろしかったら教えてください。
$_="aaa:bbb:ccc:ddd:eee"
という文字列があって、最初の":"が現れる位置で分割したいのですが、
/(.+):(.+)/;
だと最後に現れる位置で分割されてしまいます。
$1="aaa" $2="bbb:ccc:ddd:eee"にしたいのに、
$1="aaa:bbb:ccc:ddd" $2="eee"になってしまうのです。

どうかよろしく。。。
676デフォルトの名無しさん:02/02/06 04:02
さいたんまっちとかじゃね?
(.+?):(.+) or ([^:]+):(.+)
678初心子:02/02/06 04:15
>>676-677
キタキタキタキタキタキタ━━━━━━(゚∀゚≡゚∀゚)━━━━━━!!!!
出来ましたっ!ありがとうございます!
つぅーか、splitでやるってのはどうよ?
($first,$second)=split /:/, $_, 2;
ってスマートじゃなか?遅かったか〜
680677:02/02/06 04:28
あ、>679のほが100万倍ほど賢こげだ  (−_−
寝る
681初心子:02/02/06 04:50
>>679
そういうやり方もできるんですね。
勉強になりましたっ!
682わかる人だけどうぞ:02/02/07 12:56
自動アンケート作成の次期バージョン(?)が公開されたそうです。
http://snog.squares.net/index.html
の下のほうにある「プレゼント」よりDLできます。

自動アンケート内での関連箱(スレ)
http://snog.squares.net/vote2/htm/1013010926.html
Perlだいぶ覚えて、Cを勉強し始めて、
ようやくCの勉強一通り終わったと思ったらPerlの知識退化してたよ。

一般的なファイル処理くらいはできるからいいけど。
684 :02/02/19 18:37
cryptってどういう処理してるんですか?教えてください
早急におねがいします
ソース見れば。
686デフォルトの名無しさん:02/02/22 09:42
Perlのファイルハンドルが行バッファリング去れているかどうかを確認する方法を教えてください。
687_gunzip:02/02/22 09:55
>>686
#!/usr/local/devel/bin/perl5.7.2-mt -w

use Inline C;

if (is_line_buffered($filehandle)) {
    do_something();
}

__END__
__C__

#include <stdio_ext.h> /* for glibc */

int
is_line_buffered(FILE *fp)
{
    return __flbf(fp);
}
>>687 domo domo
689デフォルトの名無しさん:02/02/23 20:17
Perlでおすすめな開発環境はありますか?
エディタで書くとデバッグ面倒でいやん。
perl -d デバッガ使え。

691デフォルトの名無しさん:02/02/23 22:21
あるgifファイルがあったときに、それが本当にgifファイルであるか
判別する方法を教えてください。
最初の3バイトが"gif"だったような
693691:02/02/24 00:25
>>692
ありがとうございました。
下のようにすることにしました。

open GIF, $gif or die;
binmode GIF;
read GIF, $buff, 3;
my $id = '\x47\x49\x46';
if($buff =~ /^$id$/o){print 'This file is GIF format.';}
close GIF;
>>692-693
"GIF"では?
画像タイプを識別するモジュールくらいありそうなもんだが。
>>689
Emacs + cperl-modeはどうよ? 標準のperl-modeよりかなり強力。デバッ
ガはM-x perldbでエディタと協調して動くよ。
697デフォルトの名無しさん:02/02/28 16:38
abc.cgi :起動ターゲットモジュール
をperlでラッピングして起動するために


my @buff = ()
@buff = <STDIN>
my $outbuff

open2(*IN, *OUT, "abc.cgi");
print OUT $buff[0];
print OUT $buff[1]; #2行で値がわたってきているのは確認。

while<IN>{
$outbuff = $_;
}

と処理をしているのですが、うまくいきません。
ログを見ると、モジュールのキックはしているが、処理がループしている
状態のようです。解決策がわからないので、どなたかおしえてください(;;

ちなみに環境は
REQEST_METHOD=POST
CONTENT_LENGTH=999
です。

698デフォルトの名無しさん:02/02/28 20:14
MIME::Parse モジュール使ってメールのフィルタ掻いてます。

my $parse = new MIME::Parser;
my $entry = $parse->parse_data($mailstr);

ってやると見事にメールを解析してくれるんだが、
カレントディレクトリに msg-* ってファイルが勝手に作成されちまう。
output_dir()で指定してやったら指定したトコに msg-* ができるんだが、
この msg-* ってファイル出力を無くす方法ないのかな?

結構困るんだよね・・・ msg-*って・・・
>>698

マニュアル読めって...

output_to_core YESNO
*Instance method.* Normally, instances of this class output all
their decoded body data to disk files (via MIME::Body::File).
However, you can change this behaviour by invoking this method
before parsing:

If YESNO is false (the default), then all body data goes to disk
files.

If YESNO is true, then all body data goes to in-core data structures
This is a little risky (what if someone emails you an MPEG or a tar
file, hmmm?) but people seem to want this bit of noose-shaped rope,
so I'm providing it. Note that setting this attribute true *does
not* mean that parser-internal temporary files are avoided! Use
tmp_to_core() for that.

With no argument, returns the current setting as a boolean.
700デフォルトの名無しさん:02/02/28 22:08
perlはある意味便利すぎ
701698:02/03/01 12:01
サンクス! > 699

マニュアル読んだらファイル出力したほうがいいような気がしてきたよ・・・(w
702John ◆0z.4Is5E :02/03/01 12:07
Perlが使えて、Rubyも使える人にとって
PerlとRubyってどう使い分ければいいと思う?
>>702
Perl は CGI プログラム作成のバイトに、
Ruby は趣味のプログラム作成に使ってる。
704mina:02/03/02 07:21
横やりでごめんなさい。
Perlの質問させてください。
フレームA、Bに別れている、HTMLドキュメントで、
Aから、Bの現在のURLを取得しようと考えています。
Javascriptがだめだったので、Perlでは・・と思い、
いろいろ調べているのですが、見つかりません。
詳しい方のお力添えを。


ちなみに、Javascriptでは、Bが自ドメインなら可能でしたが、
別ドメインになると「許可されていません」のようなエラーが帰ってきました。


705NR:02/03/02 09:38
perlスクリプトを使って
簡易サーバーとしているPCからルーターのグローバルIPアドレスを取得する
良い方法、ありませんでしょうか。
ローカルアドレスは
192.168.0.1 ルーター
192.168.0.2 サーバー(ルーターのnatを使ってwww/ftp/dns/smtp/popとしています)

環境変数をファイルに書き出すcgiをIP_check.cgiという名前で作成して
socketを使って自分自身のwww.hoge.com/IP_check.cgiへアクセスしてみたのですが
cgiプログラムが実行されずに、プログラム内容が書き出されてしまいます。

socketについて理解出来ていないのが原因だとは思うのですが...
どなたが何か良いアドバイスをお願いします。
706705:02/03/02 09:59
スレ違いに気付きました
よそ行きます
707age:02/03/02 11:56
age
>>704
クライアントサイドとサーバサイドを混同していて要学習だが、結論は無理。
サイトが異なるクロスフレームスクリプティングはセキュリティ上制限されている。
709YES:02/03/02 12:35
>>704

できるYO!
でもソースは忘れてしまった・・・ゴメン。

710YES:02/03/02 12:37
JSでは、言うとおりできません。

できたのはPerlの話だよ、もちろん。
711デフォルトの名無しさん:02/03/02 12:37
Perlを当て馬にしてみようと思います
712抜粋ですが・・・:02/03/02 22:05
これはPerlでもむりだったよね?たしか。

704 の抜粋

>Perlの質問させてください。
>フレームA、Bに別れている、HTMLドキュメントで、
>Aから、Bの現在のURLを取得しようと考えています。
Perl はどこで動くんだろうか…
714デフォルトの名無しさん:02/03/03 04:40
全フォームの送信すればよいんでないの?
715補足:02/03/03 04:43
その後は環境変数から取れるね?
716デフォルトの名無しさん:02/03/09 00:29
perlで取れるか?
別フォームの値。
708のいうとおりじゃないか?

717デフォルトの名無しさん:02/03/09 03:48
>>709
思い出してくらはい。
うちでもその解決方法がわからんところです。
正直結構困ってる。
718perl中級:02/03/09 12:24
もしできたら吉野家おごるよ。
味噌汁つけてもいいYO!
719デフォルトの名無しさん:02/03/09 15:54
吉野家は無理だろう
せめて、牛丼にしてください^o^ ^^ ^^; ^^;; ^_^ `へ’
720初心車:02/03/09 22:28
ActivePerl インストール時に出てくる

「Enable PPM3 to send profile info to ASPN?」

とはどういうことですか?
721デフォルトの名無しさん:02/03/11 19:24
age
722デフォルトの名無しさん:02/03/11 19:59
ここにいるかたは皆さん詳しそうですね。
ところでPerLDAPの解説してる日本語のページってどこかにありますか?
>>722
英語よめ英語
っつーかDAPの概要知っていれば日本語である必要ないじゃん...
724棄教者 ◆witdLTi2 :02/03/14 08:19
>>722-723
>>723に同意.
日本語は確かに英語よりも安直だけど誤訳があるかもしれないし
正直 ぼくも某**s**のマニュアルの日本語版で誤訳を見つけたことがある
725教えてくん:02/03/14 10:08
すみません。みなさま、教えてください。
パール初心者です。
フォームで作ったテキストボックスに
半角数字のみの入力だけにしたいのですが
正規表現をどのようにすればいいでしょうか?

if($hoge =~ /[^0-9]/){ $error1;
}else{ $true; }

だと、少数が表示されません。
かといって、
if($hoge =~ /[^0-9]\.{1}/){ $error;
}else{ $true; }

としてみてもだめです。
助けていただけたら幸いです。
初心カキコでごめんなさい。

$hoge -= 0;

warningsオンにしてると小うるさいので、その場合は

{
my $is_nan;
local $SIG{__WARN__} = sub{ $is_nan++ };
$hoge -= 0;
if($is_nan){ # 数値じゃなかったらしい
$ ...
}else{ # どうやら数値だったようだ
# ...
}
}
あってる?

if ($hoge =~/^[0-9]+\.?[0-9]*$/) {print "マッチ";}
else {print "マッチせず";}
728棄教者 ◆witdLTi2 :02/03/14 14:32
簡略化した小数点表記を認める場合
( E.g. .333 など)
/^[0-9]*\.?[0-9]*$/

符号を認める場合
( +24, -3 など)
/^[\+\-]?[0-9]*\.?[0-9]*$/

指数を認める場合
( 1.79e2 など)
/^[\+\-?[0-9]*\.?[0-9]*(e[\+\-]?[0-9]*)?$/i

自身がないです
729みんなPerl嫌いヤネ...:02/03/16 01:13
自分も嫌いなのですが使ってた掲示板(Force 264)
が突然動かなくなってソース見てどこが悪いのかを探してるのですが、
Perl(CGIとして)でサブルーチン大漁に作ったり(Cみたいに)、インデントしまくったりすると
どれくらい遅くなるのでしょう。

うちのサイトは210人/日 ぐらいなのでどうでも良いような気もしますけど(爆)

あと無料鯖でC使える所ってありますか?
730カジ:02/03/16 01:17
shellの覚醒と解放・・・・
こりゃゼーレが黙っちゃいませんな。
731デフォルトの名無しさん:02/03/16 02:07
漏れは、なんもプログラミングとかやったことないけど、最近やりたいな〜〜とか思い出してきたんですけど、いきなりPerlから入るって邪道??
やっぱりCとかから入るべき??
日常で使いたいならperlのがいいよ>731
文字列に対して正規表現、OLEやDBが簡単に使えるし。
Cはもっと速度を上げたいとか単体実行させたくなったら覚えてけば
733デフォルトの名無しさん:02/03/16 03:58
あぁなるほど〜〜〜
貴重な話をども〜〜〜〜〜
openperlide良いね。
735棄教者 ◆witdLTi2 :02/03/16 17:01
>>731
>>732に禿堂.
C/C++は決して悪い選択肢ではありませんが訳の分からないエラーが出て
プログラム的な思考法に慣れていないとにっちもさっちもいかなくなって
投げ出してしまいます
Perlでプログラム的な思考法に慣れてすらすらプログラムが書け,
実行速度に不満を持つようになったらC/C++に進むといいでしょう

ちなみにぼくは上に書いたことをそのまま実践しています
736デフォルトの名無しさん:02/03/18 16:56
perl と mod_perl って別物なの?
mod_perl は perl が入ってないと使えないの?
>>736
同じ物なんだけど、Java AppletとJava Servletの違いみたいに実行する環境が違う。
mod_perlはperlが内部で使うライブラリをApacheに組み込むわけだから、「Perlは必要」。

と言ってもそれはビルドする時だけ必要なのであって、
実行する時には「不要」

だからインストール後に

 # rm /usr/bin/perl

とかしても平気。

 # rm -rf /usr/lib/perl5

とかは辛いけど。
738デフォルトの名無しさん:02/03/18 20:10
>>737
 mod_perlはApacheにperlを使うためのモジュールを組み込むだけなんだ
から、perl本体を消したらダメだと思うが・・・
 うそを教えようとしてるのか?
 # rm /usr/bin/perl なんて実行したら大変なことになるはず
>>738
やってみて言ってる?

仮に「mod_perlは、Apacheが直接/usr/bin/perlを使う物」だと仮定して、
その処理の過程を想像してみてください。
手続きがCGIと何ら変わりなくなります。
740デフォルトの名無しさん:02/03/18 22:43
>>739
 OSがWindowsXPでActivePerl対応のmod_perlを使っていると
ディレクトリの構成がlinuxなどとは違うのかとも思われますが。

 mod_perlというのはApacheに組み込まれるmod_****という名
前のApacheのモジュールの一種ですよね。
 結論としては「Perlのモジュールやライブラリを含むPerl関係
のファイル全体がないとmod_perlは使えない」だと思うけどなあ。
 >>739のいうやり方だとCgi.pmなんか使えなくなるんじゃないの
かな?

 >>736の人は技術評論者のWEB+DB PRESSの第1号を読ん
でみるといいのではないでしょうか?ちょっと古いけど。

いいから、やってから言おうってば。

Apacheに組み込まれるのはperl.soとかあくまでもperlの一部であって、
bin/perl ではない。
ActivePerlだとしても同じだよ。試しに
 - C:\Perl\bin\perl56.dllをリネームしてApacheを再起動した場合
- C:\Perl\bin\perl.exeをリネームしApacheを再起動した場合

をそれぞれ試してみると良いよ。perl56.dllを弄った時だけ起動できなくなるから。

Cとか他の言語からPerlの機能を使うときは、perl本体ではなくて、
perlのライブラリを読み込んで使うのです。
 だから>>736の質問がperlインタプリタの本体がないとダメなのか
という意味なら>>737の答えでも良いんだろうけど、モジュールやラ
イブラリも含むperl全体のことだったら>>740みたいな答えになると
思うが。

 結局mod_perlとperlは別のものだがmod_perlを組み込んだApache
をちゃんと使おうとするとperlがないと困るという答えになるんじゃない
か?
mod_perlにはPerlが必要だがperlは不要。これでいかが?
>>743
 ま、そういうことで・・・(^^
 ところで質問した人わかったのかな。どこへ行ったんだろう。
745デフォルトの名無しさん:02/03/23 02:21
誰か教えてください!!
10日でできるPerl/CGIという本をかって、
付属ソフトをインストールしたんですが、書いてある通りに
なりません。Apacheを起動して、ブラウザで
指定アドレスにいってもあの通りにならないんです。
Description: internal error - server connection terminated
とでます。何が間違っているんでしょうか?
せっかく買ったんだから使いたいです。
誰かわかる人いませんか?
746デフォルトの名無しさん:02/03/23 02:36
ApacheじゃなくてANHTTPDあたりで試してみたら?
747煽り:02/03/23 02:50
>>745
君、騙されたんだよ。あの本は結構苦労するよ。
あ〜あ、もったいない。お金どぶに捨てたね。
748煽り:02/03/23 02:56
で、こんなソリューションはどうすか。

結城浩 氏のページ
http://www.hyuki.com/

ApacheよりAN Serverがお勧めだ。こっちでやれば?
http://www.st.rim.or.jp/~nakata/

健闘を祈る。
749煽り−しつこくでごめんよ:02/03/23 02:59
で、Apacheのhttpd.confとかの話だったら板違い。
「10日でできるPerl/CGI」は文法だけ読めば。
750デフォルトの名無しさん:02/03/23 06:46
>>745
 本に書いてあるとおりにやってもうまくいかないことが多いですよ。根気が
大事。

 OSはWindows?Linux?それとも他のOSですか?
 「指定アドレス」というのは127.0.0.1とかlocalhostとか192.168.0.1のことですか?
 「あの通り」とはどの通りなのでしょうか?Apacheのインストール成功画面のこと
ですか?
 Apacheのhttpd.confを正しく設定されましたか?

 もうちょっと詳しく情報を。
簡単なネットワークアプリならさらっと書けるからいいね。
書いてすぐ実行は手軽でいいよ。makeするのはメンドクサイ。

大きなものは当然、C/C++やJavaだけど。
752デフォルトの名無しさん:02/03/23 08:52
AN HTTPは簡単に苦楽できちゃうから・・・。
753煽り−:02/03/23 12:34
>>752
cgi作るだけならAN で十分だろ。本人も10日で覚えようとしてるんだし。(w
それにあの本の「ロールプレイングゲームをつくろう」のコードは
Apache だとうまくいかなかったような気がした。(10日で覚えるシリーズの
改訂版ではどうなってるかしらんが。)

とりあえずご参考

http://www.harukaze.net/~mishima/perl/cgi-debug-env/dev-env.html
(とりあえずPerlEditor使っとけ)
754745:02/03/23 12:51
>>750
OSはWindowsです。
指定アドレスは
http://127.0.0.1/
です。
あの通りとは、ブラウザで起動が成功したことを
あらわす画面です。
httpd.confはCD-ROMの設定済みのファイルを
上書きしたのでまちがってないと思います。
ちなみに、手動でも試したのですがやはりだめでした。
ホスト名を指定していないか、ポートが違っているに一票
756745:02/03/23 13:01
127.0.0.1が
ローカルホスト名だそうです。
意味がよく分かりませんが。
これとは違うのでしょうか。
757デフォルトの名無しさん:02/03/23 15:26
オレも同じ本もってるぞ。
本の1ページ目からまねしてやれば自分のマシンでアパッチェサーバーが動き感動するぞ。
自分のマシンでウェブサーバーが動いてるっていうのが感動なんだよね。
758745:02/03/23 15:38
いやまねしてもならないんですよ。
書き換えるトコロは
付属のソフトから上書きコピーしましたか?
759デフォルトの名無しさん:02/03/23 15:44
上で話の出た本のタイトルって「10日でできるPerl/CGI」じゃなくて
「10日でおぼえるPerl/CGI」じゃないの?前者は検索しても見つから
なかった。内容は俺の持ってる後者と同じっぽいし。ちなみに作者は
高橋大吾氏。

で、俺もこの本を入門用に買ったんだけどそんなに悪い本なのか?
具体的にどう言う風に?>>747
760デフォルトの名無しさん:02/03/23 15:47
>>758
757じゃないが、俺は手打ちでhttp.confの設定変えたよ。
もちろん問題なく動作した。
httpd.conf が腐ってるか、間違った場所に置いているかで
Apache が起動してないんだろうな。
762757:02/03/23 16:45
オレは上書きして動作させた覚えがある。
よし!それじゃあ部屋から本を探してきて久しぶりにアパッチェつかってみてそれからだな、オレが相談にのれるは。
自分のマシンをサーバーにするのは将来WEBビジネスでもうけるための第一歩だ。
763745:02/03/23 17:35
みなそん、親切で嬉しいです。
置いているフォルダはconfなので
まちがってないと思います。
まったく原因がわかりません。
764煽り−:02/03/23 17:44
>>759
別に悪いとは思わない。だから「煽り」なんだって。
でも個人的にはBlackBookの「Perl&CGI」と、通読しないと
良く分からん「Perlで作るCGI入門・応用編(結城浩著)」が
最初は良いと思う。
ラクダは買った事無いし、いいとは思わん。

俺は勉強してしばらく経ってから「10日で覚える・・」を買った。
ロールプレイングゲームがApacheで動かなかっただけで、特に
悪いとは思わない。

で、今回のご参考

Perlの統合開発環境を発見
http://homepage1.nifty.com/wizman/app/perlfactory/index.html
765デフォルトの名無しさん:02/03/23 18:17
>>754
 WindowsであればどのドライブにApacheやPerlをインストール
しましたか?
 C:\以外にインストールした場合はhttpd.confの設定を変えない
とうまくいかないと思いますが。
 例えばDドライブにインストールした場合、
  ServerRoot "C:/Apache"

  ServerRoot "D:/Apache"
に変えないといけません。

 いずれにしてもPerlとは話題がずれますのでここでこれ以上話
をするのも何だと思いますが。
Apacheスレ@Webプログラミング板

Apacheの設定を教えてください
http://pc.2ch.net/test/read.cgi/php/1003772635/
767757:02/03/23 18:46
この10日でおぼえるPerl/CGIの付録CD-ROMを本のとおりに実行したらオレは1発で成功したぞ。
http://127.0.0.1/
にアクセスすると
あなたの予想に反して、このページが見えているでしょうか?
というメッセージが表示された。
アパッチェ起動成功までの過程はこんなところだ。
まず本と付録CD-ROMを探してくる。
自分のOSはwindowsXP Proffessional Editionだったのでまずアパッチェをインストールする前にIISサーバーを停止させる。
とにかくまずはアパッチェ以外のウェブサーバーを停止させよう。
なんのことか意味がわからなかったら今までにウェブサーバーを使ったことがないということで、つまりアパッチェ以外がインストールされている可能性が少ないのでここは気にしなくてよいだろう。
アパッチェをインストールする前にハードディスクのバックアップをとったほうがよいが、それも時間のかかる話なので俺はパソコンにもしものことがあったら745になんとかしてもらうということで思い切ってインストール決行。
768757:02/03/23 18:47
CD-ROM \ Perl \ APi522e.exe
付録CD-ROMのPerlフォルダにあるAPi522e.exeを実行。インストール中はnextボタンをどんどん押していけばいい。
これでActive Perlのインストールは完了。
つぎはいよいよアパッチェをインストールするのだがこれのインストール中にはnextをクリックしまくってはいけない。
CD-ROM \ Apache \ apache_1_3_14_win32_r2.exe
インストール中にインストール先を聞いてくるからこのインストール先を本は変更してくれと言っている。
だからインストール先をC:\Apacheに変更。
インストール中に何も考えずにマウスをクリックしまくるとインストール先の変更をしないでインストールが完了してしまう。
apacheのインストールが完了したらapacheの環境設定ファイルhttpd.confをCD-ROMからハードディスクにコピーする。
さらにコピーしたあとにhttpd.confのプロパティを開いて読み取り専用属性を解除しておく。
CD-ROMに収まっているファイルはすべて読み取り専用になっているのでこれからもCD-ROMからハードディスクにコピーしたファイルのプロパティを変更するのを忘れないようにする。
769757:02/03/23 18:49
今の時点でハードディスクには
C:\Apache
C:\Perl
というフォルダが作成されている。
それからwindowsのスタートメニューからStart Apacheのショートカットアイコンを選択し起動。
apache running
と表示されていればアパッチェは起動している。
ここらでアナログ回線などのダイヤルアップでインターネットをやっているばあいはブラウザのインターネットオプションの接続を「ダイヤルしない」に設定しておいたほうがよいぞ。
なにしろサーバーが自分のマシンにインストールされてるんだからインターネットに接続しなくてよい。オレはアナログ回線でがんばってるんだぞ。
それからブラウザを開きアドレスバーに
http://127.0.0.1/
を入力。
そうすると あなたの予想に反して 何かが起こるわけだ。
まずはいろいろ削除してはじめからやってみて、それでもダメだったら再び原因を考えるよ。
成功したら最新のアパッチェをダウンロードしてくるのがよい。
それよりスレちがいの警告がでてるらしいぞ。
770745:02/03/23 21:16
最初から全部やってみました。
やはりダメです。
Description: internal error - server connection terminated
と出ます。何がいけないかまったくわからないです。
スレ違いと言われても、どうすれば・・。
771757:02/03/23 22:39
Description 種類、タイプ
internal 内部の
error エラー
connection 接続
terminated 終える+ed
接続切れエラーか?
ブラウザの設定やアンチウィルスソフトの関係でApacheが終了する可能性はある。
あまりセキュリティアップするとパソコンも何もできなくなるというこったな。
まずはwindows関係のパッチファイルやサービスパックを当ててからブラウザの各種設定を初期にもどし、
さらにアンチウィルスソフトを削除してみて実験するのもよいんじゃない?
もちろんその間はメールの送受信はやめて、アパッチェの実験が終わってアンチウィルスソフトをインストールするまでは目的以外の操作はしない。
どのぐらいのセキュリティ設定で何が動くかは把握しておく必要がある。
もとのセキュリティ設定がどんなだったか忘れた場合は
OSの再インストール&windows update(サービスパックインストール)
をしただけのまっさらな状態で実験したらいいんじゃない。
772板違いなら謝る:02/03/25 01:34
Perlをなんとか使い始めて1年。未だにわかんない事があります。
どうしてもソースが数千行になってしまいますな。
おかげで何日かたつと自分でなんだかわからず、解読にかなり時間が生じる
ありさま。

それとも、もともとPerlなんてこんな出来なのか?(んなわけないか?)

Cみたいにソースを分けるやり方やってる人っていますか?
773板違いなら謝る:02/03/25 01:36
>>772
なんか行が入れ替わってるんですけど。

Cみたいにソースを分けるやり方やってる人っていますか?
それとも、もともとPerlなんてこんな出来なのか?(んなわけないか?)
774棄教者 ◆witdLTi2 :02/03/25 07:51
>>772-773
自分の書いたプログラムにコメント入れていますか?
再利用可能なコードはサブルーチン化, モジュール化していますか?
require使っていますか?
775772:02/03/25 09:04
>自分の書いたプログラムにコメント入れていますか?
>再利用可能なコードはサブルーチン化, モジュール化していますか?

うん。そしているつもり。オブジェクトも使ってるよ。my($this)=shift
なんつったりして。
それでも縦になが〜いプログラムになっちゃうのよね。
C++みたいなきれいなツリーができるとうれしいんだがな。鬱
776棄教者 ◆witdLTi2 :02/03/25 11:13
require使っていますかと問いつめたい
777デフォルトの名無しさん:02/03/25 12:44
777ゲット
       v
     <(゚ω゚) <うっ!
      (  )\        
      /'>

       v
      (゚ω゚)> <はっ!
     /(  )        
       <'\

       v
     <(゚ω゚)> <うっ!
      (  )        
      /'>

       v
      (゚ω゚)/ <はっ!
     /(  )        
       <'\

     v       w
    (゚ω゚)/ \(゚δ゚)<ジーンギスカーン!
   /(  )    (  )ゝ
     <'\    / >

>>771
Description を '種類' とか 'タイプ' とか訳す奴は、プログラマ止めた方が
いいぞ。
>>772->>773, >>775
Perl でも Sub, Require 等があるから、別に C と同じだと思うけど...。
まあ、その前に数千行にも及ぶプログラムを Perl で組むのはどうかと思う
が...。
780それじゃー聞くけどよーおめーら:02/03/25 21:26
画面を10個ぐるぐる回しながら動かすcgiの画面の部分も別ファイルにしてrequireします?

自分の場合、別ファイルにするのは
@レコード(package Hoge)
A自作した汎用関数(変数をハッシュに入れるなど)
なんですよね。制御部分はどうしても1つのファイルに書いてしまう。すると

#!/usr/local/bin/perl -w
require 'HogeHoge.pl';
require 'Hogge.pl';
 ・
 ・
に始まって、
sub Hoge{
}
sub hogeccho{
}
 ・
 ・
sub OgeOge{
}
てな具合に関数がドバッと縦に並びます。これがなんだかスパゲティなんですな。
どないです?
>>780
Perl 勉強する前に、日本語勉強したら ? 何をしたいのか全然わからん。
日本語がスパゲッッッティィィィ
783デフォルトの名無しさん:02/03/25 22:20
>>781-782
>>773読め。わからんなら黙ってて。

784デフォルトの名無しさん:02/03/25 22:22
っつうかもういいわ。ここで聞いたのが間違いだった。
785デフォルトの名無しさん:02/03/25 22:31
画面を10個ぐるぐる回すっていう意味がわからない。
そういうスクリーンセーバーなら見たことあるけど。
>>783->>784
ハァ ? ソース分けたいんなら、require で十分だろうが。
わけわからんことばっかり言うならもうくんな。
787デフォルトの名無しさん:02/03/25 22:42
>>786
おめーに聞いちゃいねーーんだよ。
でも、もう解決したからいいよ。チンカスPGちゃん。(W
一生懸命俺のレス読んでくれたのね。どうもありがと。(爆


(´-`).。oO(春ですねぇ。。。)
だねぇ。まあ、>>787 は、人生がスパゲッティなんだろうねぇ。
Perlのような言語でも、他の人のスクリプトを解析するのは勉強になりますか?
CGI関連だと、手ごろにたくさん入手できそうなのですが。
791棄教者 ◆witdLTi2 :02/03/26 07:37
>>790
勉強になりますが 春休みを利用してこのスレを荒らしている誰かさんのコードは
反面教師になると思います
標準で付いてくるパッケージを読むのが一番勉強になると思われ
cgi.pm はインターフェースや取説の面でもかなり参考になりました
792デフォルトの名無しさん:02/03/26 14:56
だれかDescription訳してくれー
cf:
>>778
793デフォルトの名無しさん:02/03/26 16:21
perlのことなのかわかりませんが、
表示する文字列を強調するときに使う
print "\e[7m hogehoge \e[m";
の \e[7m などは何なんですか?
perlとは関係ありません。
795 :02/03/26 16:37
�x004b;
796デフォルトの名無しさん:02/03/26 16:38
>>794
なにで検索したら引っかかります?
できれば他のもしりたいので。
えんいー
>>791
アドバイスどうも。
まずは標準でついてくるライブラリーからいじくってみたいと思います。
800デフォルトの名無しさん:02/03/26 17:47
>>796
リンクどうも。助かりました。
801デフォルトの名無しさん:02/03/27 00:43
2ちゃんで唯一まともなPerlスレをやっと見つけた、、。
少ないね、Javaとかに比べると。
>>801
WebProg板はご存知かな?
http://pc.2ch.net/php/
803デフォルトの名無しさん:02/03/27 03:47
Perlのような文字処理がC++でやれれば
C++で十分。

ってか、今後はJAVAかC#をメインに行こうかと思うです。
個人的にPerlのいい所って文字列処理ぐらいです。
804 :02/03/27 04:22
けいやくしてるプロバイダがHTMLとPerlで書いたCGIしか使っちゃだめだっていってるんだもん。
だからPerlは今の個人ホームページ作者にとっては大事だよ。
805棄教者 ◆witdLTi2 :02/03/27 08:16
>>803
それはごもっともですが Perl のいいところは使い捨てにできるくらい簡単にコードが書けるところです
ぼくはヘビーなプログラムはC++で, そうでないプログラムは Perl で書くようにしています
806デフォルトの名無しさん:02/03/27 15:01
電話番号 12-3456をから、ハイフンをとって、123456とする
perlのスクリプトをどなたか教えてください。文字列の真中の
空白のとり方がわかりません。
ハイフンを取りたいのか空白を取りたいのかが文章からわからないんだが。
とりあえず、
$num =~s/\D//g;
$num =~ tr/0-9//dc;
809806:02/03/27 16:50
>>807
>>808
~s/\D//gの//ての中身って空白文字じゃなくて、虚無なんですね?
勘違いしてました。すいません。
s/\s//;
Perlのいいところは「自分はやっつけ仕事をしている」という自覚を
常に持たせてくれること。
C++とかJavaだと、しょうもないプログラムを書いていても
まともな仕事をしていると錯覚してしまう。
ソフト板「SAKURAエディタ」スレとマルチっぽいんでゴメソなさい。
readline ってどんな関数(演算子?)なんでしょう?
とりあえず print readline(STDIN); のような感じでうまく動くっぽいんだけど
ラクダ本にも texinfo にも載ってないし。
813デフォルトの名無しさん:02/03/30 16:03
WindowsでActivePerl最新版使ってるんですけど、

perl -e "print (256**2)+256"



perl -e "print (256**2)+255"

が同じ 65536 になるのは何故?
すいません。単なる演算子の順位でした。
>811
あと、再利用する時の事とか、他人が読む時の事とかも、考える必要が無くて良いNE!
816812:02/03/31 23:39
解決っ
ttp://www.rocketaware.com/perl/perlfunc/readline.htm
ソフト板「SAKURAエディタ」スレの方で URL 教えていただきました。
817デフォルトの名無しさん:02/04/04 17:08
分からないので質問です。

Perlの拡張正規表現(?>パターン)についてなんですけど、

CGIの掲示板で入力されたものに対してHTMLのあるタグ以外を
禁止する処理をしているのですが、
例えば<hr>以外のタグを禁止にする場合、

$comment=~s/(?><hr>)</&;/;
$comment=~s/(?><hr>)>/>/;

ではだめでしょうか?
818817:02/04/04 17:12
訂正。
$comment=~s/(?><hr>)</&lt;/;
$comment=~s/(?><hr>)>/&gt;/;
819棄教者 ◆witdLTi2 :02/04/04 17:17
<HR WIDTH="200">にも対応できるとありがたい
実験くらいしる
821817:02/04/04 18:12
実験してできないんだよ。
説明ページもほとんど無し。
822817:02/04/04 18:21
つーかラクダ本にも載ってないのはどうよ?
ラクダ本は掲示板を作るためのハウツー本じゃないです。わらぃ
こんなのはどうですか?

# タグを全て排除
$comment =~ s/</</g;
$comment =~ s/>/>/g;

# hr タグだけ復活
$comment =~ s/<hr(\s+width=(["']?)\d+%?\2\s*)?>/<hr$1>/ig;

これなら <hr> <hr width=80%> <hr width="400"> <hr width='60%'>
の全てに対応しています。
すンごくごちゃごちゃしてるけど,原理がわかれば応用も利くですよ。
824823:02/04/04 19:43
あー,やってもたー。いつも気をつけてるのに・・

#タグを全て排除
$comment =~ s/</&lt;/g;
$comment =~ s/</&gt;/g;
# hr だけ復活
$comment =~ s/&lt;hr(\s+width=(["']?)\d+%?\2\s*)?&gt;/<hr$1>/ig;
825823:02/04/04 19:46
(;゚Д゚)ノ 落ち着け自分
誤 $comment =~ s/</&gt;/g;
正 $comment =~ s/>/&gt;/g;
826823:02/04/04 20:19
すんません。817さんが何を問題にしてるか今気づいたっす。
> ラクダ本は掲示板を作るためのハウツー本じゃないです。わらぃ
これ,私の方がマヌケでした。ごめんなさい。。。(-_-)ウツダ
827778:02/04/04 22:32
>>792
辞書ぐらい引いたらどうよ ? それもメンドイなら、Microsoft Bookshelf とか
買っといたら ?

Description: 記述,叙述,説明,(言葉による)描写

今回の場合は、普通に「説明」程度で意味が取れるだろ。
828デフォルトの名無しさん:02/04/10 20:49
HTMLタグの正規表現書いてみたんですけど、どどど・・・どですか?
$htmltag_regex=q{<\/?\w+(?:\s+\w+\s*(?:=\s*(?:"[^"]*"|'[^']*'|[^"'>\s]*)))*>};
829デフォルトの名無しさん:02/04/10 20:52
終了タグも含めるならこっちかな。
$htmltag_regex=q{<\w+(?:\s+\w+\s*(?:=\s*(?:"[^"]*"|'[^']*'|[^"'>\s]*)))*(?:>|(?=<)|$(?!\n))};
$htmltag_regex.=q{.*?<\/\w+\s*>};
830デフォルトの名無しさん:02/04/10 20:53
ちょっと訂正。
$htmltag_regex=q{<\w+(?:\s+\w+\s*(?:=\s*(?:"[^"]*"|'[^']*'|[^"'>\s]*)))*>};
$htmltag_regex.=q{.*?<\/\w+\s*>};
831初心子:02/04/14 22:10
質問です。変数のサイズを取得するにはどうしたら良いのでしょうか?
832rain:02/04/14 22:24
同じく質問です。
あのですね、apacheを起動させた後IEからCGIを実行しようとすると何故かダウンロードし始めやがるんですよ。
どうして実行できないんでしょう?救済御願いします。
言語不明瞭
834rain:02/04/14 22:28
sorry.
perlです。
835rain:02/04/14 22:36
過去ログ見たらWebProgへ行けと・・・。逝って来ます。
836棄教者 ◆witdLTi2 :02/04/15 08:05
>>832
chmod 0755 するといいかもしれないYO!
>>831
int は 2/4 バイト, long 4バイト, short 2バイトみたいなC/C++のルールは
Perlにはありません。
メモリがパンクするまで幾らでも変数を作っていいんです。
837すいませんが:02/04/17 17:09
CとJAVAは組めますが、Perlをこれからやろうと思います。
どのくらいでマスターできますか?
2〜3ヶ月くらいでしょうか?

マジレス希望です。
>>837
マジレスだが、人による。
一般的には100時間くらいやれば、実践で使えるくらいにはなりますかね?
840大マジのマジレス:02/04/17 17:48
>839
君は今まで食ったパンの枚数をおぼえているのかね?
つーか、はじめてから、大体使えるようになるまでの期間くらい覚えてるべさ?

とりあえずCやJAVAよりは簡単なのでしょうか?
んなこと人に聞く前にお勉強しる。
843デフォルトの名無しさん:02/04/17 18:14
1日。つーか数時間。
>>841
仕様の悪さをすんなり受け入れられればすぐに覚えられる。
>>837
そのくらいのことを、ここで聞かないとけんとうつけられないあなたは、
適性はないです。
何ヶ月かかるかわかりません。
ここには書ける人がいないようですね
847デフォルトの名無しさん:02/04/17 18:42
>>846
まじに、どうしてこんな疑問がでるかわからんよ。
ほうんとうに何ヶ月とか何百時間とかかかりそうなんか?

おれは、週末に本を読んで掲示板のCGIをその日のうちに作ったけど。
(短時間で作ったから完成度は低かったけど)
848843:02/04/17 18:49
>846
おれは書けるよ。CもJavaもとりあえずはね。
で、>841でPerlはそれより簡単かって訊いてるけど、基本的な構文は簡単。
しかし、変態的なコードをC、Javaより書きやすいんで、他人のコードを読むのはどっちかとゆーと難しいかも。
849179マルチPになっちまった:02/04/17 19:51
>>848
マジレスどうもありがとう!
実践的なレベルに達しようとしたとしても、Cみたいに半年もやる必要はないんですね?
マヂデ誰か「179マルチPになっちまった」こいつ頃してください。
うるせーよ馬鹿
たまには遊びたいじゃない
852843=848:02/04/18 08:09
>849
実践的なレベルに達するには、843でも書いたけど、基礎がある人なら数時間で大丈夫だと思う。
ここでいう基礎ってのは、変数とか関数とかアルゴリズムとか。
あとは作りたいものによるね。おれのばあいはテキストいじりがメインだったから、
正規表現の知識とか、そんな感じで。

同じテキストいじりメインで、CとJavaをすでに知ってて、さらに正規表現も知ってるなら、
ほんとあっとういうまだと思うよ。
853849:02/04/18 08:34
>>852
感謝
これで成仏できます
そうなんですか。
数時間といわれると、ネタなのか?と疑ってしまいました。
854デフォルトの名無しさん:02/04/18 12:34
数時間は嘘だな。

結局その言語の風習やリソースの在り処やイディオムを、
ネイティブに身につけるにはどんなプログラミング言語でも時間がかかる。


数時間でってのは「使えた気」になれるまでの時間だ。

例えばPerlを始めてCPANを知って使って登録するまで、
おまえ等どれくらい時間を要した?
(別にメタクソなモジュールでもアップロードできるんだけどさ)
855843=848=852:02/04/18 13:56
>854
嘘じゃないってば。まあ「実践的」の範囲が違うんだと思う。
おれはテキストいじりがメインだったからね。
それさえできれば「実践的」だったってことだよ。
854の言う「実践的」が、「風習やリソースの在り処やイディオムを
ネイティブに身につける」ってことなら、たしかに数時間じゃちっとね。

余談かもしんないけど、おれ、CPANに登録したことないよ。
しつもんですみません
デバッガでステップ実行している最中に
レキシカル変数の値がどうなっているか
を見るにはどうすれば良いでしょうか?
>>856
p expr
>>857
expr は $foo の値を見るには $foo って書くんですよね?
なんか、
perl -de 'my $foo=123;' -e 'print $foo'
ってやって

main::(-e:1):  $foo=123;
__DB<1>_p $foo

__DB<2>_p defined $foo

__DB<3>_p !defined $foo
1
__DB<4>_

ってな感じになって、なんも値はいってないみたいなんですが…
ってここまで書いて

__DB<4>_n
main::(-e:2):  print $foo
__DB<5>_p $foo
123

ってなる事がわかりました…
あーmain::(-e:1):  $foo=123;
の段階だとまだ  $foo=123;は評価されてなかったんスね…

オサワガセシマシタ…首くくってきまー
俺はそこそこPerlの文法というものが分かってきた。
そこで1つ質問があるんだ。
Perlに関するバイブル的な本というのはあるのだろうか?
是非教えて頂きたい。
>859
俗に言うラクダ本。
オライリージャパンの。表紙がラクダの分厚いやつ。
>>860
おぉ。
情報サンクス!
862デフォルトの名無しさん:02/04/21 20:52
二項分布の計算をPERLで作ってるんですが、
1000乗とか2000乗とか、でかい数を乗数にすると、
ダメみたいなんですが、何か対策方法とか
ないのでしょうか?
>>862
Python か Ruby でも使えば?
864862:02/04/21 21:18
>>863さん
早速のお返事ありがとうございました。
おそらく、HPの場所がPERLしか使えない(ただ知らないだ
けかも?)と思われ、どうにかPERLでCGIを製作したいと
思ってます。
PERLをやっとひとかじりした厨房なのでトンチンカンなこと
言ってたらすいません。
>>864
・統計計算用の Perl ライブラリを探す
・式を工夫して桁数を小さくする
・リアルタイムで生成する必要がなければ
 手元で計算して結果だけウェブに載せる
866Perl使ったことないが:02/04/21 21:39
Perl使わなくてもC言語でカバーできないの?
>>866
CのCGIも使えるようなところだといいんだけどね。

>おそらく、HPの場所がPERLしか使えない(ただ知らないだ
>けかも?)と思われ、どうにかPERLでCGIを製作したいと
>思ってます。
数値計算はPerlの最も苦手な分野です。
驚くほど低速です。
Math::BigInt(BigFloat)を使うとさらに重くなります。
共有スペースでCGIを動作させるなら、そういうことはやらないようにね。
869862:02/04/21 23:12
>865さん
お返事ありがとうございました。
>・統計計算用の Perl ライブラリを探す
一生懸命探しましたが、見つからず挫折しました・・
>・式を工夫して桁数を小さくする
これは努力の余地がありそうです。
>・リアルタイムで・・・・
リアルタイムで動くものを目指しています。
870862:02/04/21 23:18
>866さん,867さん
感謝です!
どうも、PERLしか使えないみたいなんです(涙)
>688さん
初耳(汗)でした。
>数値計算はPerlの最も苦手な分野です。
>驚くほど低速です。
言語には向き不向きがあるのは知っていましたが、そうだったとは・・・
共有スペースでやろうとしていましたが、迷惑になってしまいそうです。
断念しないといけなそうです(涙)
871棄教者 ◆witdLTi2 :02/04/22 07:53
糞厨房ですが質問です
Perl と PERL
どちらが正しい名前でしょうか
>>869
鬼のように複雑な事でもなければそこそこだよ。
ライブラリsearch.CPAN.orgに行って探して見れ。
>>871

"Perl"がプログラミング言語を指して
"perl"が処理系(/usr/bin/perlとか)を指してるけど

"PERL"は定義されてないと思ったよ。
perlの「正規表現」は正規表現ではない
>874
??
つかえりゃーそれでいいんでないかい?
Perlに理論とか理屈とかを求めてもしょうがないよ。
>>875
いいんだけども、挙動が正規表現と違うから
混乱する
POSIX 準拠じゃないだけで正規表現は正規表現では?
正規表現が例えば/(!+)[^!]+\1/こんなマッチできるわけがない
そんなことを言えばPOSIXの正規表現だって正規表現じゃないし。

もしかして DFA 等価な正規表現のことか。
確かに本来の正規表現とは違ってるな。
>876
無ければ作る。がんばってくれい。
882デフォルトの名無しさん:02/04/30 19:58
perlでLZSS圧縮(テキストを圧縮するのに適した圧縮方法で、
比較的簡単な処理で実現できる)を行っているソースなどは
ありませんか?
>882

CPANで検索したらイロイロでてくるよ。ライセンスの問題さえ気にしなければ
そのまま使ったほうがラクダ。

ttp://search.cpan.org/Catalog/Archiving_Compression_Conversion/

884デフォルトの名無しさん:02/05/03 08:30
perlの文字列とかの内部構造ってどうなってるんだろう。
ある程度の大きさのメモリを確保しておいて、
足りなくなったらmalloc見たいな感じ?

正規表現とかで置換したときとかの動作も気になるところ。
十分な大きさのメモリをもうひとつ確保してすりかえてるのか?

ソースを落として解読は無理(ダイヤルアップ回線て…)。
>>884
今、見たら Perl-5.6.1.tar.gz が約 6MB やね。56K モデムなら、
30分もあれば充分じゃねーか。
>>885
14.4kモデムて…
電話代かかるて…
まあ適当に理解したつもりでいきるよ
>>886
2ch やってる暇あったら、マクドでバイトでもして 56K モデム代と、
電話代稼げ。
888デフォルトの名無しさん:02/05/04 23:56
Java使い出してからPerlの必要性が感じなくなってきて
Perlを完全に捨てようと思ってるんだけど同じような人いる?
889デフォルトの名無しさん:02/05/05 00:27
>>888
JSPに完全に乗り換えたよ。
>>888
おれもそんな感じかな。
おれはよくJAVAのスレにいるよ。たたかれてるけど(w
完全に捨てるってつもりじゃないけど、
結局次から作るのはJAVAでやろうって感じだから
捨てることになるのかなぁ・・
でもperlって電卓みたいに気軽につかえてすきだった。
とくにUNIXサーバー管理してるんで、使いやすかったし。



891デフォルトの名無しさん:02/05/06 18:27
ま、結局素人がJavaに手が出るわけもなく、設置も簡単で組むのも簡単な
Perlはアマチュア言語として、Javaはプロ用言語として住み分けがされる
わけなんでしょうな。
892ロボ鉄 ◆MGTy6iYI :02/05/06 18:50
あの暗号みたいなコードを見るとワクワクするw
893:02/05/06 18:54
>>888
JAVA は PERL の代替にはならないと思うけど。
処理内容にもよるけど PERL の方が手軽でいいやん。
どういう用途で PERL から JAVA に乗り換えたん?
>>891の母でございま(以下略
漏れはPerl詳しく知らないんで、Perlの良さは正規表現ぐらいしか
わからん。仕事でJava使うようになったけど、Javaは文字操作が
あまり得意じゃないが(1.4は未使用)、C/C++使いだった漏れには、
超簡単お手軽言語に思えたよ。個人的な掲示板には某CGIを使わせて
もらってるが、当然Perlで書かれていて、ダイナミックに手を入れ
られないので、自宅サーバにJava(とPostgreSQL)入れて、Tomcat上で
一から作り直そうと思ているYO!
Perlを愛する人は 心清き人(以下略
Perlの良さは、ひとつには「ここはサボる!」と決めたら本当にサボれるところ。

Javaだと、例えば「例外は投げたいがthrowsは書きたくない」ってことはできない
(今どきはエディタとか統合環境が面倒見てくれるのかもしれないが)。
898:02/05/07 01:59
Java だとコンパイルせなあかんし起動も遅いやん。
Perl で事足りるならわざわざ Java を使う必要ないんとちゃう?

>>895
>Perlの良さ
 多機能でお手軽なスクリプト言語。
 確かに正規表現は Perl の良いところ。
>CGI
 基本的に自作します。
 Perl はそんなに難しくないので勉強されてはいかがですか?

※決して Java を嫌っているのではないですよ。
perl のCGI よりサーブレットのほうがはやいよね。
サーブレットよりmod_perlのほうがはやいよね。
javaのCGIは死ぬほど遅いよね。
# core javaに書いてたけどそんなことするやつはもう居ないよなぁ
902デフォルトの名無しさん:02/05/08 11:46
このスレもやっと900超えましたな。
903デフォルトの名無しさん:02/05/08 15:29
Perlはイイよ、インストールしてないけど。
Javaは別にC#やC++で代用できるけど、Perlは個性的で面白い。
>>903
ruby、Python で代用できないの?
>>904
別にいいんでない?
ちとマイナーだけど。
Pythonistなんてみたこと無い。
>Pythonist

こういう書き方、はじめて見た。
908デフォルトの名無しさん:02/05/08 16:23
Pythonian が一般的?
Rubyユーザみたいなかっこ悪い真似はしないだけだよ。
>>909
頼むから Ruby 厨を召還しないでください。
911909:02/05/08 21:29
いやだって最近見ないから。
Perler
Rubiest
Pythonian
つーわけですか。
913デフォルトの名無しさん:02/05/09 03:35
Perl のモジュールでエラーメールの解析してくれる奴無いすか?
自分の書いた if 文を見て鬱氏・・・
「エラーメールの解析」って何だ?
915デフォルトの名無しさん:02/05/09 13:50
>>862 もう読んでいないかもしれないけど。

pure Perl でなくてもよいのなら、 Math::CDF なんだけどね。
二項分布だと、確率関数はガンマ関数(の対数)、分布関数は不完全ベータ関数
を使って計算するのが定石ではないかと思う。C にくらべると遅いが、よっぽ
ど繰り返すのでなければ問題ない程度じゃないかな。

URL は忘れたけど、pure Perl のもので公開しているのもあることはある。昔、
類似品を書こうとして検索していたら見付けて、CPANにあげてとメール出した
記憶はある。結局、あげてくれなかったんだけど。
916913:02/05/09 16:18
>>914
MLとかでメンバーアドレスのフォワード先が死んでるとか、
quotaがかかってて受け付けないとか、で送信先のサーバが返す
エラーメールから、どのメンバーアドレスがエラーになってるかを
何とか自動で調べたいんだけど、エラーメールのフォーマットが
多種多様で、自分で正規表現で追っかけるのが嫌になってきたと。

舌足らずで須磨ソ
917913:02/05/11 00:34
板違いだったかしら・・・
fml の mead.pl も腕力のようだし、
このまま突っ走るしかないのかねぇ。
>>913
んー、quickmlを参考にしてみたら?
quickmlってPerlじゃないと思うけど(Ruby?)。

最近のMTAには、「ちわっす、おいらqmailっス。
申し訳ないんだけど、○○さんあてのメールは届かなかったんだよね。
お知らせしとくっス」(超意訳)みたいなエラーメールを出すやつもあるしねえ。
英語のスパムかと思って消すとこタダーヨ。
919デフォルトの名無しさん:02/05/11 21:52
ActiveStateに
5005threadでbuildしたActivePerlをくれって言ったら
くれますかね?
>>919
何故自分でコンパイルしないのかと以下略
921デフォルトの名無しさん:02/05/11 22:31
Squeakある意味最強
922デフォルトの名無しさん:02/05/12 04:13
韓国語のEUC-KRからiso-2022-krに変換したいのだけど、そんなモジュール知りませんか?
<丶`∀´>
日本人謝罪シル!
領事館進入シル!・・・ウシシ
<丶;゚Д゚>
アイヤーしまったあるね
まあこのさいどうでもいいニダ
925デフォルトの名無しさん:02/05/12 07:19
Perlで簡単なHTTPSクライアントを作りたいのですが、検索してもなかなか仕様と
かの情報が集まらなくて困っています。
Windows98のCygwin上で動くようなやつを探してます。
良ければ仕様(できれば日本語)及び、ソース(できれば日本語コメント付き)が公開
されているサイトとかを教えていただきたいです。
作りたいのかソフトがほしいだけなのかどっちなんだ?
ちなみに LWP::UserAgent 使えば終わりだが。
928925:02/05/12 09:31
せっかく教えていただいたのに申し訳無いのですが、インストールの仕方がわかり
ません。

Cygwinは
ftp://ring.asahi-net.or.jp/archives/pc/gnu-win32/からsetup.exe
を落として、ダブルクリックしてインストールしたら動いたんで、意味不明だけど
なんとなく使っている程度でして…。

makeだとかgccだとかopensslだとかはsetup.exeでインストールしました。

で、
perl makefile.pl
とやってもエラーは出ていないようなんですが、
make
ってやるとワーニングが出てます。
make test
ってやるとやっぱりエラーが出ます。

UNIXとかについての知識が殆ど無いのもありますが、英語が読めないのが致命的
なようです…。

エラーの意味が良く分からないんで、半ば諦め入ってます…。このまましばらく
やって無理そうだったら諦めます。

教えていただいてありがとうございました。
>>928
activeperl使えばいいのに・・・。

>エラーの意味が良く分からないんで、半ば諦め入ってます…。

初めのうちは行番号だけを参考していればいい。
その行番号かその上がエラー箇所が原因であることが多い。
少し経てばどういうミスでどのエラーが出るかわかってくる。
コンパイルエラーくらいでへこたれるな!がんばれ!!
Cygwinは標準でperlインストールされるだろ
LWPも標準ではいってるだろ
折れはcigwinのperlに上書きバージョンアップをかけたことあるよ。ファイル検索ー>コピー、で。
おまえらCygwinじゃなくてDJGPP使えよ!
>>928
httpsのクライアント側はNet::SSLeayだかIO::Socket::SSLだかが必要。
最新のActivePerlではPPMで提供されていない。

opensslをインストールした後、こいつらを展開して、
perl Makefile.PL
nmake
nmake install
すればかんたんに入る。

ActivePerl for Win32ではnmakeを使う、これ基本。VisualStudioが必要。
nmakeした結果を自分でPPMにしておけば、複数のマシンにインストールするとき楽。
SSL回りがPPMでバイナリ配布されてないのは、
opensslのライセンスの関係なのかなあ??

cygwinの方はよくわからないけど、UNIXと同じようにやったんじゃなだめなの?

> 英語が読めないのが致命的なようです…。
気のせい。読めないような気がするだけ。
辞書片手にじっくりとりかかれば、大事なところは理解できるハズ。
理解できないところはきっと無視しても平気な部分だ。がんがれ!
ちなみに自動翻訳にかけると、その「理解できないが無視していいところ」が
原因で文全体がメロメロになるのでおすすめしない。
934デフォルトの名無しさん:02/05/13 00:00

ある処理をして、それがエラーだったら別の処理をする
ということが出来ますか?
(エラーメッセージを出させないようにする)
935デフォルトの名無しさん:02/05/13 00:16
>>934
????????????????????????????

if(func()){
#通常処理
}
else{
#エラー処理
}
936934:02/05/13 00:33
>>935

func()って何を表すものでしょう?手元の辞書には載っていないのですが・・・・
エラーというのはPerlが終了してしまうような事態のことです。
どういうことやると終了する?

例外処理みたいなこと知りたいんだと思うけど。
938デフォルトの名無しさん:02/05/13 00:40
>>936
2ちょんスクリプト(bbs.cgi)より引用

#シグナル対処関数
sub SigExit {
exit(0);
}

#対応シグナル
{
$SIG{'PIPE'} = $SIG{'INT'} = $SIG{'HUP'} = $SIG{'QUIT'} = $SIG{'TERM'} = "SigExit";
}
939934:02/05/13 00:43
もうちょっと詳しく書きます、MacPerlなんですが、Macにはアプリケーション間で情報をやりとりしたり
リモートコントロールするためにAppleEventというプロトコルがついています。
これを使うモジュールがMacPerlにはあるのですが
相手のアプリケーションがたとえば起動していなかったり、不正な処理をしたりすると、Perlに対してエラー情報を返し、
PerlはエラーメッセージとともにPerlスクリプトの実行を終了します。

このような「エラー」が出た場合、例外処理でスクリプトの実行を終了されることを回避したいのです。
Mac使いではない人には分かりづらいかも知れませんが、たとえばファイルオープンに失敗したとか、
ファイルアクセス中にファイルが壊れたとか・・そういう事態に似ていると思ってさしつかえないです。
>>939
いや、例外ならC++以降の言語には大抵搭載されてるから。
Perlに例外処理機構があるのは初耳だけど。
941934:02/05/13 00:53
Perlはファイルオープン失敗してもエラーは返さないんでしたね(;´Д`)
942934:02/05/13 00:55
>>940
初耳というか・・・そういう手段があるのでしょうか?という話です、たとえばモジュール追加するなどで・・。
943デフォルトの名無しさん:02/05/13 00:55
>>941
返すわボケ!
eval 使え。
945934:02/05/13 01:01
>>944

!それですかね。eval
if構文みたいなやりかたばかり考えていたのですが、evalならイケそうですね。thanks!

>>941
手元にある辞書には「openは失敗してもエラーになりません」と・・この辞書ダメですかね。
946デフォルトの名無しさん:02/05/13 01:01
eval - dieか、DESTROYかな。
>>945
open(FILE,"./hoge.txt") || die("駄目でした(T_T)\n");

こういう構文を見たことない?
948デフォルトの名無しさん:02/05/13 01:08
>>945
それってさ、エラーを返さないんじゃなくて、エラーでストップしないという意味じゃない?
それならCも同じだが・・・・
複数の2次元配列をモジュールに渡すときの、渡し方と渡された側の取得方法を記せ。
リファレンスを渡す。
>モジュールに渡す
(゚Д゚)ハァ?
>934
処理を eval で囲む。
953デフォルトの名無しさん:02/05/13 12:51
CPANにtry...catchモジュールがあったかもしれん。
うるおぼえでスマソ
Perlでの例外処理機構はeval {ブロック}です。
eval "文字列" とはちょと違う。
eval内で発生したエラーは$@に格納されています。

eval { 処理 }
if ($@) { エラー処理 }
>>953
それって単なるevalのラッパだった気がする。
うるおぼえでスマソ
>>955
うろ覚えでしょ。
957デフォルトの名無しさん:02/05/14 00:44
>>953
CPANに登録されてるのはどんなのか知らんけど、
try...catchのサンプルはperlsubにも出てたはず。
958913:02/05/16 01:01
>>918
quickml のソースが公開されてたとは・・thanx
959デフォルトの名無しさん:02/05/18 19:24
perlって他の言語と違っていろいろ種類があるようなんですがそうなんですか?
その種類・用途などはどのようになってるんでしょうか?

ageときます。
asge
>>959
気のせいだ。
962棄教者 ◆witdLTi2 :02/05/18 23:47
>>959
バイナリファイルを吐き出せるよ。
会社ではGDS IIフォーマットを整形するプログラムをPerlで書いて、
同僚に使ってもらっている。
963デフォルトの名無しさん:02/05/19 02:09
>>959
正規表現とか?
文字列操作に強いのは確かだね。
あと、世界中の人が作ったライブラリが共有サーバーにアップ
されているので、言語を超えて色々できるっていったらできる。
964:02/06/02 19:21
pdf を気軽につかえる方法ない?
PDFLib 見たけれど、変な文字がでかく入って嫌なんだけれど
>>964

Kansai.pmのMLでPDFJなんてのがアナウンスされてたな。

http://hp1.jonex.ne.jp/~nakajima.yasushi/
966デフォルトの名無しさん:02/06/10 10:17
もうすぐこのスレも終りだねぇ。
だねぇ。でも書き込み少ないね・・・
さて、次スレでも立てるか
お前等DUKE作ろうぜ
このペースだと、980くらいまでいってからでも遅くはないんじゃないか?
そろそろ埋めるか
 
 
 
 
976デフォルトの名無しさん:02/06/12 01:04
Perlでオセロとか作れますか?
作れるよ。
978デフォルト:02/06/12 01:09
Perl/Tkで作ってもいいよ。
でも1000円位のコンビにで買う手もある。
979976:02/06/12 01:19
>>977・978
レスありがとうございます。
追加で質問なのですが、作る場合ゲーム盤の表示はNNやIE等のブラウザで
行うのでしょうか?その他に方法があるのでしょうか?
ちなみに私はflashのactionscriptとjavascriptの知識しかありません。
しかもうちにはMacしかありません。

980976:02/06/12 01:22
すみません。

>>その他に方法があるのでしょうか?---×
>>その他Perl/Tk以外にも方法があるのでしょうか?---○
テキストで。
982976:02/06/12 01:39
>>981
レスありがとうございます。
挑戦してみます。
新スレかもん。
「Perl6について語れや」でいいんじゃないのか?
「Perl5.8について語れや」ではないのか。