Perlについての質問箱 38箱目
at TECH
1:デフォルトの名無しさん
08/09/21 12:22:12
"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、
Perlの奥深さについて皆で語り合い、追求してまいりましょう。
CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
( WEBプログラミング板 URLリンク(pc11.2ch.net) )
CGIの質問は答えが Perlと全然関係ない話に帰着する場合が
多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
URLリンク(www.perl.org)
● 2008/09/21 現在の最新版(安定版): 5.10.0
● 2008/09/21 現在の開発版: 5.9.5
▼ 前スレ
Perlについての質問箱 37箱目
スレリンク(tech板)
リンク集は>>2-3
Perl 日本語処理の基礎の基礎 >>4
過去スレは>>5-6 あたり
2:デフォルトの名無しさん
08/09/21 12:22:38
[プログラミング自体の経験が無い奴はまずココを読め]
Perlプログラミング講座: URLリンク(www.site-cooler.com)
[本]
リャマ: URLリンク(www.oreilly.co.jp)
駱駝: URLリンク(www.oreilly.co.jp)
Effective Perl: URLリンク(www.ascii.co.jp) (修正)
クックブック: URLリンク(www.oreilly.co.jp)
Perl ベストプラクティス: URLリンク(www.oreilly.co.jp)
Perl Hacks: URLリンク(www.oreilly.co.jp)
[オンラインマニュアル]
最新のドキュメント: URLリンク(search.cpan.org)
perl5.8.xのドキュメント(一部): URLリンク(www.kt.rim.or.jp)
perl5.005_03 のドキュメント: URLリンク(www.kt.rim.or.jp)
日本語ドキュメント検索: URLリンク(www.cpan.jp) (停止中)
perldoc.jp: URLリンク(www.perldoc.jp)
perldoc.com: URLリンク(www.perldoc.com)
3:デフォルトの名無しさん
08/09/21 12:23:02
[モジュール]
CPAN.com: URLリンク(search.cpan.org)
河馬屋二千年堂: URLリンク(homepage3.nifty.com)
[テクニック]
Perlメモ: URLリンク(www.din.or.jp)
Perlのページ: URLリンク(homepage1.nifty.com)
Perlの小技: URLリンク(homepage3.nifty.com)
[Perl 5.8 Unicodeメモ]
URLリンク(www.rwds.net) (修正)
URLリンク(www.namazu.org)
URLリンク(www.lr.pi.titech.ac.jp)
4:デフォルトの名無しさん
08/09/21 12:23:32
# [Perl 日本語処理の基礎の基礎]
# このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。
# このレスの内容をそのまま、UTF8 形式のソースファイルに保存して下さい。
# 入出力ともシフトJIS形式のファイルまたはDOS窓を想定しています。
# まず、以下の行を先頭に入れて下さい。
use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)"; # ※1
use Encode;
# 次に、あなたが実行したい処理の内容を入れて下さい。
$file = 'C:/なんたら/かんたら.txt';
open my $fh, '<', encode("cp932", $file) or die $! ; # ※2
print <$fh>;
# 以上の内容は、日本語処理が解らない人でも、とりあえず日本語処理ができてしまう
# おまじないです。条件が異なる場合の対処方法は、ご自分で勉強して下さい。
# 【注】※1.の行を入れると、DOS窓への日本語出力は簡便になりますが、
# ソースファイル名に非ANSI文字が含まれる場合にdie 文の出力が失敗します。
# ※2.OSに渡す文字列(ファイル名,dosコマンドのオプションなど)は、
# この例のようにcp932でエンコードする必要があります。
5:デフォルトの名無しさん
08/09/21 12:24:39
1 URLリンク(pc.2ch.net)
2 URLリンク(pc3.2ch.net)
3 URLリンク(pc2.2ch.net)
4 URLリンク(pc2.2ch.net)
5 URLリンク(pc5.2ch.net)
6 URLリンク(pc5.2ch.net)
7 スレリンク(tech板) (事故により消滅)
8 スレリンク(tech板) (事故により消滅)
9 スレリンク(tech板)
10 スレリンク(tech板)
11 スレリンク(tech板)
12 スレリンク(tech板)
13 スレリンク(tech板)
14 スレリンク(tech板)
15 スレリンク(tech板)
16 スレリンク(tech板)
17 スレリンク(tech板)
18 スレリンク(tech板)
19 スレリンク(tech板)
20 スレリンク(tech板)
6:デフォルトの名無しさん
08/09/21 12:25:07
[過去スレ2]
21 スレリンク(tech板)
22 スレリンク(tech板)
23 スレリンク(tech板)
24 スレリンク(tech板)
25 スレリンク(tech板)
26 スレリンク(tech板)
27 スレリンク(tech板)
28 スレリンク(tech板)
29 スレリンク(tech板)
30 スレリンク(tech板)
31 スレリンク(tech板)
32 スレリンク(tech板)
33 スレリンク(tech板)
34 スレリンク(tech板)
35 スレリンク(tech板)
36 スレリンク(tech板)
37 スレリンク(tech板)
7:デフォルトの名無しさん
08/09/21 12:37:52
すれ立て乙
8:デフォルトの名無しさん
08/09/21 14:28:51
もういいです
9:デフォルトの名無しさん
08/09/21 14:42:33
同感だが、ないと寂しいのも事実
10:デフォルトの名無しさん
08/09/23 14:43:26
いままさに転職で就活してるが、PerlとかPHPとかできますって言っても
「PHP()笑ですか。Javaとかできますか?」って言われるわww
ちなみにPerlの話題なんて微塵もでません。言っても「へぇ…」程度
あんまりJavaJava言われるから、Javaのコードすら書いたことないのに
いま勉強中です!資格取得めざしてます!!なんて言うようにしてみたら
Javaでちょっとコード書いてきて見せてとか言われてしまって、
そこで初めてJava触ったけど
MVCアーキテクチャとかっていうやつだっけか。たしかにこれは面倒だなw
仕事でいろいろ分業するのにはこういう作りはすごくよさそうだけど
個人で趣味でやるならPHPで十分目的は達成できるしPHPでいいだろうな
11:デフォルトの名無しさん
08/09/23 15:10:14
ファイルハンドルからファイル名を取得することはできますでしょうか?
xxxxxxみたいな関数とかあります?
open my $fh, "data.txt";
$file_name = xxxxxx $fh;
print $file_name; #=>data.txt
12:デフォルトの名無しさん
08/09/23 15:23:53
無いと思う。つか、ファイルを開く時点で名前を把握してるのに、なんでわざわざ
ファイルハンドルから取得する必要がある?
13:デフォルトの名無しさん
08/09/23 15:47:31
>>12
ないですか。
ファイルロックをする関数でflockが有効ならflockを、そうでなければ、ファイル名をベースにした
ディレクトリ作成をしようと思いました。
sub lock {
my $fh = shift;
if ($valid_flock) {
flock($fh, 2);
} else {
my $file_name = xxxxxx $fh;
my $lockdir = $file_name."dir";
my $retry = 5; # リトライ回数セット
while (!mkdir($lockdir, 0755)) { # 作成。出来なければ待つ
if (--$retry <= 0) { &error("BUSY"); } # 5回ダメならあきらめる
sleep(1); # 1秒待つ
}
}
14:デフォルトの名無しさん
08/09/23 16:37:34
>>13
flock() が使えない環境で動かす必要があるなら、最初から他の方法に統一したほうがいいように思えます。
flock() だけ分岐させても、どちらに分岐するかによって flock() 依存の機能の利用可否が異なりますから面倒になるだけです。
それはそれとして、その構成だと呼ぶ側で既に open() してるわけですから、
引数にファイル名を渡してやればいいんじゃないですかね。
15:デフォルトの名無しさん
08/09/23 17:00:49
>>14
flockが使える環境ならば、ファイルロック機能が強固なflockを使ってもらい、使えない場合は、
ディレクトリ作成方法でまかなおうかと思いました。
ファイル名も引数で渡す方法でいこうと思います。
16:デフォルトの名無しさん
08/09/23 17:27:20
PerlでCのEnumみたいなのを定義する上手い方法はないかな?
それともハッシュでやるしかないんでしょうか?
17:デフォルトの名無しさん
08/09/23 17:39:20
>>16
cpan にあるなあ
URLリンク(search.cpan.org)
求めるものかどうか知らんけど。
18:デフォルトの名無しさん
08/09/23 17:40:38
>>17
あーこれグッドです。どうもありがとうございます。
19:デフォルトの名無しさん
08/09/23 18:03:50
定数って正規表現中で使えないのか・・・当たり前だよね
やっぱりPerlならHashでやるのが一番いいのかもね
20:デフォルトの名無しさん
08/09/23 18:52:06
(??{})
いや、なんでもない
21:デフォルトの名無しさん
08/09/24 10:13:37
>>19
<q cite="URLリンク(www.kt.rim.or.jp)">
シンボルテーブルの別の使い方は、“定数”スカラーを生成するためのものです。
*PI = \3.14159265358979;
この後、$PIを変更することはできません。
</q>
#!/usr/bin/perl -w
use strict;
use constant FOO => 'foo!';
our $BAR; *BAR = \'bar!';
print "${\FOO}$BAR\n", eval { $BAR = 'bar?' } || $@;
__END__
22:デフォルトの名無しさん
08/09/24 10:30:46
>>21
>>16 からの話の流れを読むと、
列挙型が欲しくて enum (>>17-18) を使ったけれど、enum の提供する定数はサブルーチンベースなのでパターン内に展開できない(>>19)。
それに対し >>20 が控え目に打開案を示した、という流れ。
シンボルテーブルベースの列挙型を新たに実装する手もあるし、
Readonly.pm を使う手もあるけど、
変にこだわりさえしなきゃ >>19 の通りハッシュで済む話だね。
23:デフォルトの名無しさん
08/09/26 06:39:52
スレリンク(operate板:210番)
perlで書くとこうなる
24:デフォルトの名無しさん
08/09/26 11:14:17
Perlを勉強してやる!
25:デフォルトの名無しさん
08/09/26 14:32:07
>>23
read.cgiはCで書かれてるつーの。
26:デフォルトの名無しさん
08/09/26 15:14:43
>>24
つ、通報しま
27:デフォルトの名無しさん
08/09/26 15:42:10
>>23みたいに、内容の違うpageを自分の妄想と結びつけてソースだと言い張る
頭がおかしい人間がこの掲示板には多いよね。
>>23のリンク先は、「cでperlみたいに正規表現を使いたいんだけどどうすりゃ良いの?」
というひろゆきの質問スレなのに、それがわからない。
煽りでなしに、病院で診察を受けた方が良い。
28:デフォルトの名無しさん
08/09/26 15:54:38
自分で掲示板作って
自分でそこで質問する、って
最強だよな。
29:デフォルトの名無しさん
08/09/27 08:14:06
do{last}while(1)
なぜこれがエラーになってしまうのでしょう?
do{last}for(1)
これはおkなのに
30:デフォルトの名無しさん
08/09/27 10:17:16
文字列がどれだけ合っているかを判別するにはどのようにしたらよいでしょうか?
以下のように
-------------
(比較元) 我が輩は猫である。
我が輩は人である。 -> 90% ほど合致。
我輩は猫である。 -> 90% ほど合致。
猫である我が輩は。 -> 5% ほど合致。
-------------
ように算出できないでしょうか?
31:デフォルトの名無しさん
08/09/27 18:27:16
URLリンク(www.aoky.net)
「そしてもちろん、Perlにはそのほかにもたくさんデザイン上の
奇妙なところがある。たとえば「コンテキスト」を見るといい。そ
れはラリーがシェルスクリプトからコピーしたN変数ネームス
ペースやシジルによるデリファレンスのようなおかしな決断の
ぞっとする副産物だ。Perlでは、すべてのオペレータ、すべて
の関数、すべての操作が、その「コンテキスト」に従い、6つの
うちのランダムな1つの仕方で振る舞う。与えられたコンテキス
トにおいて特定の操作がどう振る舞うかを支配するルールや
ヒューリスティクスというのは存在しない。あなたは単にすべて
暗記しておくしかないのだ。
例がほしい? スカラーコンテキストでハッシュにアクセスすると
、分子が割り当てられたキーの数、分母がバケットの数となっ
ている分数を内容とする文字列が得られる。クジラのはらわた
だ。そう言ったでしょ。」
32:デフォルトの名無しさん
08/09/27 18:28:54
>>31
を読んで、「ほんとかよ?」と思ったので実験してみた。
my $a;
my %b;
%b=qw (a b
c d
e f
g h);
$a=%b;
print "$a\n";
実行結果。
4/8
本当だ!
この仕様考えたヤツはいったい何が不満だったのか?
33:デフォルトの名無しさん
08/09/27 18:50:31
>>30
Levenshtein距離とか
34:デフォルトの名無しさん
08/09/27 19:33:23
>>32
Javaで言えばただのtoStringじゃん
35:デフォルトの名無しさん
08/09/27 19:38:22
ついでに言えばperlのコンテキストもOOPの演算子オーバロードも(使う方からすれば)似たようなもの
36:デフォルトの名無しさん
08/09/27 20:54:49
perlのかっちょええエディタを紹介して。
コードの自動補完とかできるやつ。
37: ◆TWARamEjuA
08/09/27 22:49:21 BE:654023-2BP(7089)
(・o・)ポカーン
38:デフォルトの名無しさん
08/09/27 23:04:10
>>29
do ~ while 構文(及び while 修飾子)で last したければ
% perl -le '{ do{last} while (1) } ;'
みたくブロックで囲む必要がある。
詳しくは、 perlsyn の while の項を読め。
ちなみに next の時は、
% perl -le 'do{{next}} while (1) ;'
B::Deparse で syntax OK になる分タチ悪がね。
% perl -MO=Deparse -le 'do{last}while( 1 ) ; '
(略)
-e syntax OK
つか do ~ while 構文なんて使うなよ…
39:デフォルトの名無しさん
08/09/27 23:15:21
「い」が抜けたorz...
40:デフォルトの名無しさん
08/09/27 23:27:27
「でもいい」も抜けてたな。
酒飲んで書き込むもんじゃねえなあ
41:デフォルトの名無しさん
08/09/28 00:26:39
>>29
while(1)・・・でいいのをわざわざdo・・・while(1)で書いてるくらいだから、
よっぽど、do-while文が好きだったんだな。どの言語の影響だ?
Perlのdo-while/untilループは通常のループ制御が使えんから、使い物にならんよ。
>>38みたく、みっともないことになる。
42:デフォルトの名無しさん
08/09/28 00:35:15
Exporterを使って全関数をExportするにはどうしたら良いでしょうか?
@Exportに全関数名を入れるのは骨が折れるのでこの方法は避けたいです。
43:デフォルトの名無しさん
08/09/28 01:25:25
正規表現で.+と.+?の違いはなんでしょうか?
前者は任意の文字が1個以上続くというのはわかるのですが、後者がわかりません。
よろしくお願いします。
44:デフォルトの名無しさん
08/09/28 01:59:56
マンドクセー
最長と最短
45:デフォルトの名無しさん
08/09/28 02:26:47
>>42
Perlは関数とか実行時に動的に割付可能な言語だから、いちいち名前を列挙するのが当然と思われ。
ま、俺もPerlあんま詳しくないんだけど、自動で全部というのはプラクティスとしてありえないと思う。
強引にやるなら、コンパイル時にシンボルテーブルのコードっぽいやつをとりあえず
@EXPORTに突っ込むことが考えられるが、こんなことやってるのいままでPerl関係のコードで見たことがない。
見たことがないということは、やらない方がいいということ。
@EXPORT = map {*{$_}{NAME}] grep {*{$_}{CODE}} values %PACKAGENAME::
PBPにサブルーチンにEXPORT属性を設定する方法が紹介されているので、ここらあたりで
妥協できないか。
46:デフォルトの名無しさん
08/09/28 08:59:51
他のモジュールと関数が衝突すると痛いので、
オブジェクト指向化推奨されてる。
EXPORTするのは定数ぐらいにした方がいい。
47:デフォルトの名無しさん
08/09/28 09:47:27
大量に定数定義するモジュールで45みたいなことやったわ。
全部大文字のシンボルを@EXPORT_OKに追加するとかそんなの。
いちいち列挙するのだるかったのでつい魔が差した
48:デフォルトの名無しさん
08/09/28 21:15:00
perlはそのうちこうなる↓
スレリンク(news板)
49:デフォルトの名無しさん
08/09/29 01:05:31
>>45
やはり全部書くべきですか。ただ面倒というだけで問題は無いのでひとまずはそれで行こうと思います。
PBPというのはPerl Best Practicesですね。まだ読んだことが無いので手を出してみます。
>>46
薄学のためオブジェクト指向についてまだよく分かってないのですが、
確かに全関数をエクスポートするくらいならオブジェクト指向で組めばよい気がしてきました。
まだ関数名の衝突という事態には当たったことはありませんが、
オブジェクト指向で組むことも考えてみようと思います。
50:デフォルトの名無しさん
08/09/29 08:03:59
ときどき開発者の中には、特に Perl のプログラマーは、
PHPを「劣った」言語だと考える人がいます。
それについてはどう思いますか。
51:デフォルトの名無しさん
08/09/29 11:08:45
PHPっつたって、バージョン違えば別言語なんだからバージョン言ってもらわないと。
5.2と5.3のマイナーバージョン違いでさえ大幅に違うんだからさ。
52:デフォルトの名無しさん
08/09/29 11:40:15
劣ったとは思わんがPerlや他の言語を元にWebに特化したわりには冗長だな
そしてプログラミングセンス的に劣った奴でも簡単に扱えるのは良いんだか悪いんだか・・・
Perl以上に出来る奴と出来ない奴の差が激しいかもね
無駄に関数多いけど新しいものをどんどん取り入れようとしてる姿勢は良いと思う
が、ますます冗長になっていく・・・
某社ではプログラマにはPHPは使わせてなかった
あんなのはHTMLのコーダーやデザイナーが埋め込みで使うスクリプトだ、と
極論ではあるがそういう使われ方が結構多いんじゃないか?
53:デフォルトの名無しさん
08/09/29 11:54:26
PHPは成長中の言語だから、一概に言えない。
ただ、Perlと同じく継ぎ接ぎの酷さが見えてきた感じはする。
54:デフォルトの名無しさん
08/09/29 22:26:06
ある程度以上メジャーになってしまうと、あとから大規模に言語仕様を弄るのは大変だからな。
同様の問題は、PerlやPHPに限らずRuby,PythonとかC/C++とかも多かれ少なかれ抱えてると思う。
55:デフォルトの名無しさん
08/09/30 07:11:06
おまいら、eclipse + padwalker + epic
使ってる?
56:デフォルトの名無しさん
08/09/30 08:21:44
URLリンク(builder.japan.zdnet.com)
ここみたら、perlのエディターが
Perl
* EPIC
* PerlBuilder
* PerlComposer
* Perl Editor
* Perl Express
* Open Perl IDE
* OptiPerl
* Zeus
こんなに紹介されてるんだけど、どれが最強?
57:デフォルトの名無しさん
08/09/30 08:51:27
1級perl検定
以下のコードのバグを見つけよ
(制限時間15秒)
---------------------------------------
for ( my $a=1; $a<=10; $a++ ) {
print "$a\n" if $a=3;
}
58:デフォルトの名無しさん
08/09/30 09:01:22
URLリンク(www.donzoko.net)
ここに書いてあるんだが、ひょっとして
モジュール同士で相性が悪いってことはあるのか?
もしそれが本当だとしたら、モジュールなんでもかんでも
いれたり使ったりすると原因不明のバグに悩まされることにも
つながりかねないのか?
59:デフォルトの名無しさん
08/09/30 10:08:24
>>57
if $a==3 かな?
15秒以内でみつけたから、俺、上級?
60:デフォルトの名無しさん
08/09/30 13:06:08
配列の任意の要素を削除するにはどうすればいいのでしょうか?
@arr = (1, 2, 3, 4, 5);
$del_element = 3;
($del_elementで指定した要素を削除する処理)
print "@arr"; #=> 1 2 3 5
61:デフォルトの名無しさん
08/09/30 13:08:48
>>60
splice
62:デフォルトの名無しさん
08/09/30 13:21:49
>>61
d
できました
63:デフォルトの名無しさん
08/09/30 13:41:24
Perl::Critic
ってなんなのかなぁ?
64:デフォルトの名無しさん
08/09/30 13:48:14
>>58
SwitchとAcme::Comment がソースフィルタタイプのモジュールだからだろ?
ソースフィルタタイプなんて一個でも気持悪い(元のコードを改変すんだぜ?)のに
モジュールの二段重ねとか、そりゃ危険は高かろう。
つか、フィルタタイプだろうとなかろうと、cpan.searchでフィックスしてない
バグくらいは閲覧してから入れるか否かの判断しろよ、、、
65:デフォルトの名無しさん
08/09/30 14:09:56
URLリンク(blog.nqou.net)
ここに書いてある
perltidy
ってのをいれようと思ったんだが、
ActiveperlのPPMには入っていないようだ。
しかし、Acme::tidyというのが代わりに検索で
出てくるんだが、これでも同じなのか?
66:デフォルトの名無しさん
08/09/30 14:14:28
URLリンク(googlewhacks.blogspot.com)
いったいこれはなんだー
67:デフォルトの名無しさん
08/09/30 14:29:04
>>65
自己解決した。
検索のときにハイフンを入れてなかった。
ハイフンいれたら検索で出てきた。
68:デフォルトの名無しさん
08/09/30 15:19:21
perlcritic
使い方がいまいちよくわかんね。
69:デフォルトの名無しさん
08/09/30 19:15:02
eclipse + padwalker + epic
でperlなのだが、
prin
って打ったときに、
print
printf
って候補を出してくれる、っていうのはできないの?
70:デフォルトの名無しさん
08/09/30 19:34:32
RSS1.0、RSS2.0、Atom0.3のRSSを生成したいのですが、
オススメのモジュールなどありますでしょうか?
できればインストールが簡単(*.pmコピるだけとか)で扱いやすいので。
71:デフォルトの名無しさん
08/09/30 22:31:04
UNIXタイムスタンプ→グレゴリオ歴に変換するにはどうすればいいのでしょうか。
localtime((stat 'hoge.png')[9]) としても、どうも変な変換になっているようなのです。
72:デフォルトの名無しさん
08/10/01 21:08:27
CPANモジュールについてはここでいいですか?
Text::MeCabの最新版
URLリンク(search.cpan.org)
がどーしてもMacOS Xにインストールできません。
Makefileの-arch ppcを削ったらmakeできましたが、
それをmake installしてもまともな結果になりません。
どなたか御存知ですか?
73:デフォルトの名無しさん
08/10/01 21:15:48
>>71
scalar localtime((stat 'hoge.png')[9]) にすると希望どおりだとかいうオチでは。
>>72
前にCPAN on OS X で困ってる人が来ていろいろやりとりしてたら
「MacPortsで解決しました!」という出来事があったのでこわいのです。
74:デフォルトの名無しさん
08/10/01 22:02:08
>>73
> scalar localtime((stat 'hoge.png')[9]) にすると希望どおりだとかいうオチでは。
マニュアルを見ると希望通りに出来ると云うオチでしょう。
75:デフォルトの名無しさん
08/10/01 23:14:32
perlソースコードの1行目のshebangを置換させるようなプログラムを
以下みたいなone-linerで書きたいのですが
perl -pi.bak -e 's/#!.*/#!c:\\perl\\bin\\perl/ if($. == 1)' *.pl
$. の行数が、2つめのソース以降も値を引き継いでしまいます
なにかうまい方法はないでしょうか
76:デフォルトの名無しさん
08/10/02 01:03:19
>>75
組み込み関数の eof を調べてみたらいいと思うよ。
77:デフォルトの名無しさん
08/10/02 01:19:21
>>76
ありがとうございます
eofは使ったことがありませんでした
試してみます
78:デフォルトの名無しさん
08/10/02 07:41:10
普通に丸呑みモードでいいやん?
perl -i.bak -0777pe 's/\A#!.*?\n/hoge\n/ ' *pl
79:デフォルトの名無しさん
08/10/03 18:05:27
cgi掲示板なのですが、ログインすると文字化けしてまして、
コードがISO、西ヨーロッパなどとなってしまうのです。
そこで、headerの部分にcharset=を含めようとしてるのですが、
何度やっても、500エラーになってしまいます。
sub header {
print "Content-type: text/html\n\n";
print "<!--//HEAD//-->\n";
print "<html><head>\n";
print "<META http-equiv="Content-type" content="text/html; charset=Shift_JIS">\n"
print "<title>CGI Control Panel</title>\n";
print "<META http-equiv="Content-type" content="text/html; charset=Shift_JIS">\n"
↑
を追加して日本語になるように、お願い致します。
80:デフォルトの名無しさん
08/10/03 18:26:15
>79
WebProg板へ行った方が的確な回答が得られるんじゃないかな。
で、" " の中で、更に " " を使うな。
人間ならともかく、コンピュータはどこまでが " " の範囲なのか理解できない。
81:デフォルトの名無しさん
08/10/03 18:27:33
すでにWebProgにマルチしてるよコイツ
82:デフォルトの名無しさん
08/10/03 22:09:29
質問です。ActivePerlをインストールしコマンドラインでppm install DBD::mysqlを実行したのですが
ppm install failed: Can't find any package that provides DBD::mysql
というエラーメッセージが出ます
DBD::mysqlはリポジトリから無くなってるのでしょうか?
83:デフォルトの名無しさん
08/10/03 22:32:19
追記:PERLバージョン5.10.0です
新バージョンに対応してるDBD::mysqlがないということでしょうか
84:デフォルトの名無しさん
08/10/03 23:29:38
Active Perl 5.8.8 では ppm install DBD:mysql できるぞ。
無理して 5.10.0 使わんでもいいんじゃない?
85:デフォルトの名無しさん
08/10/03 23:47:26
>>82
cpan使えば?
86:デフォルトの名無しさん
08/10/04 12:29:01
スレリンク(prog板:60番)
これはどういうことだ
87:デフォルトの名無しさん
08/10/04 12:50:24
VB、Java、最近だとruby、このあたりは、プログラマに向いてない
人間の比率が高いから、採用の目安としては使えない、ってことじゃないかな。
昔のコボラみたいに融通が利かない人間を採ってもあとあと困るし。
88:デフォルトの名無しさん
08/10/04 17:40:03
Mail::Sendmail
これの正しい発音は、
メール コロンコロン センドメール
で合ってる?
89:デフォルトの名無しさん
08/10/04 18:39:13
滅入る 殺殺 千度滅入る
90:デフォルトの名無しさん
08/10/04 19:00:16
Acmeはちゃんとアクメって読めよ
91:デフォルトの名無しさん
08/10/04 19:27:09
ファイルを読み込むとき、ファイル名を指定する。
log.txt
ここで質問。ファイル名が連番になっていても 順に読めるのでしょうか?
log001.txt
log002.txt
open(IN, "log.txt");
print while (<IN>);
close(IN);
log003.txt
92:デフォルトの名無しさん
08/10/04 19:34:12
はあ
93:デフォルトの名無しさん
08/10/04 20:34:36
日本語でおk
94:デフォルトの名無しさん
08/10/04 20:47:45
globれ
95:デフォルトの名無しさん
08/10/04 22:27:56
だから
open(IN, "log001.txt");
print while (<IN>);
close(IN);
open(IN, "log002.txt");
print while (<IN>);
close(IN);
open(IN, "log.003txt");
print while (<IN>);
close(IN);
って書くと面倒でしょう?
ファイル名が連番になってて 順に読めないのかどうか?が知りたいのですよ。
96:デフォルトの名無しさん
08/10/04 22:30:44
200個のファイルを読み込みたいのだよ。
200個分のファイルを読むように ソースコードを書くのが 手間がかかりすぎるやん?
2000行ぐらい書くことになるかもしれない。
だから、 ファイル名を連番にして、
200行ぐらいの短くて分かりやすいコードは書けないのでしょうか?
97:デフォルトの名無しさん
08/10/04 22:33:04
>>91
my $a;
$a="log001";
print "$a".".txt\n";
$a++;
print "$a".".txt\n";
これちょっと実行して結果見てみ。
98:デフォルトの名無しさん
08/10/04 22:36:07
>>94
なかった
99:デフォルトの名無しさん
08/10/04 22:37:58
>>97
それ!それです。
マジ助かる。ありがとうございました!!
100:デフォルトの名無しさん
08/10/04 22:37:58
>>98
何がないんだよ
101:デフォルトの名無しさん
08/10/04 22:41:07
globでえーやん
102:デフォルトの名無しさん
08/10/04 23:02:00
助かるってことはループは使えるのかな。globもないらしいしよくわからない。
例によって $a は(ry ついでに "$var" って(ry
103:デフォルトの名無しさん
08/10/04 23:03:50
$varなんかどこに書いてあるんだよ
104:102
08/10/04 23:05:46
じゃあ元通りの "$a"
105:デフォルトの名無しさん
08/10/05 04:55:51
>87
改行の仕方がおかしいせいで別の意味に取れる
106:デフォルトの名無しさん
08/10/05 05:25:14
>>102
つかこの程度の発想が出来ないとプログラムセンス的になぁ・・・
107:デフォルトの名無しさん
08/10/05 13:03:55
かなり致命的だよな。
そこそこスジの良い人なら、仮にPerlが初めて触った言語でも
勉強3日目には卒業してるレベル。
108:デフォルトの名無しさん
08/10/05 17:14:19
オレと同期入社の女子社員は
>>95みたいなプログラムを本当に書いてた
109:デフォルトの名無しさん
08/10/06 10:24:45
質問者もひどいが回答者もひどいという話か
110:デフォルトの名無しさん
08/10/06 23:15:39
if文条件部の正規表現で、gオプションを付けているのをどこかで見たのですが、別に付けなくても
いいような気がするのですが、何か意味があるのでしょうか?
if ( /%[^%]*?%/g ) { ・・・ }
111:デフォルトの名無しさん
08/10/06 23:57:19
試してないけど、マッチ情報の取得とかで変わるんじゃない?
112:デフォルトの名無しさん
08/10/07 01:44:45
if じゃなくて while の条件式じゃないのかな。
113:デフォルトの名無しさん
08/10/07 11:38:43
言われてみれば確かに if で g を使うのは変だよな。while ならともかく。
たぶん、ついうっかりやってしまただけだろ。特に意味など無いと思うよ。
114:デフォルトの名無しさん
08/10/07 11:57:42
Windows、ActivePerl5.8.8 です。
data1.txtは、Shift-JISで改行は\x0D\x0Aです。
以下のコードを実行すると、data2.txtの改行が、\x0D\x0D\x0Aとなりますが、何故そうなるのでしょうか?
open IN, "<:raw", "data1.txt";
open OUT, ">:crlf", "data2.txt";
print OUT <IN>;
close IN;
close OUT;
115:デフォルトの名無しさん
08/10/07 12:46:41
久し振りにPerl/Tkをやったら、すっかり忘れている。
116:デフォルトの名無しさん
08/10/07 12:48:52
>>114
:crlf は、0x0A を出力する時に 0x0A → 0x0D, 0x0A という置換をする。
(入力時は、0x0D, 0x0A を 0x0A に置換する)
:raw は、何の変換もしない。
おそらく data1 が 0x0D, 0x0A なテキストで、これがそのまま無変換で読み込まれ、
出力する時に <0x0D> <0x0A> → <0x0D> <0x0D, 0x0A> と変換されている。
117:デフォルトの名無しさん
08/10/07 12:58:49
>>116
なるほど、そういうカラクリですか
サンクス
118:デフォルトの名無しさん
08/10/07 14:18:44
>>110-113
正規表現的にうっかりだろうけど、マッチがグローバルになる事を利用している場合もある。
マッチが保存された開始位置から始まり、(次のマッチの為に)開始位置を保存するようになる。
例.
perl -le '$_=q/012312345/; m/1/g; m/1/g; print join q/:/,$`,$&;'
0123:1
pos($_)= X; m/RE/g のように、マッチ開始位置を指定する手もある。
119:デフォルトの名無しさん
08/10/07 18:04:49
>>111-113
>>118
サンクス
可能性としては、単なるうっかりか、次のマッチのために使っていたということっすね
120:デフォルトの名無しさん
08/10/07 18:17:13
日本で一番Perlを操れる人は小飼弾氏ですか?
121:デフォルトの名無しさん
08/10/07 18:25:49
小飼ってまだ生きてるの?
122:デフォルトの名無しさん
08/10/07 18:38:21
URLリンク(www.yahoo.co.jp)
↑こんなURL投稿でサイト名を取得して(タイトル内の<title>Yahoo! JAPAN</title>)を表示させるにはどうしたら良いですか?
Yahoo! JAPAN
123:122
08/10/07 18:39:41
タイトルが無い場合はURL
124:デフォルトの名無しさん
08/10/07 18:46:44
>>120
ちがうだろ
125:デフォルトの名無しさん
08/10/07 18:52:55
>>122
支離滅裂
126:デフォルトの名無しさん
08/10/07 18:55:37
URLリンク(www.aimix.jp)
これを改造で良いのかな?
127:デフォルトの名無しさん
08/10/07 19:33:55
SLDやTLDを抽出するプログラムを書きたいのですが、
.co.jpがどうしても抽出できません。
誰か間違いを教えてくださると嬉しいです。
よろしくお願いします。
my $suuji;
$host = fff.co.jp;
if($host =~ /\.co\.jp$/){
$suuji = 10;
}else{
$suuji = 3333;
}
print $suuji;
128:デフォルトの名無しさん
08/10/07 19:42:29
$host = fff.co.jp;
print $host, "\n";
裸のワードはなんたらなので文字列ならなんとかかんとか
129:デフォルトの名無しさん
08/10/07 20:39:27
>>116を見て思ったのですが、"\n"="\x{0A}"ですか?
130:デフォルトの名無しさん
08/10/07 20:55:24
そうです
131:デフォルトの名無しさん
08/10/07 21:02:20
>>130
サンクス
一つ賢くなりました
132:デフォルトの名無しさん
08/10/07 21:29:48
>>122
scraper
133:デフォルトの名無しさん
08/10/08 12:43:37
CPANへの登録ってどういう基準?
便利でよくできてるものはどんどん登録された方がいいと思うけど、
これはえがいひとみたいのが、カスみたいのを登録しまくったら滅茶苦茶になるよね?
134:デフォルトの名無しさん
08/10/08 20:23:03
おまえでも登録できる。
単に出来が悪くて抹消というのは聞いたことがない。
Perl の人達は一般に、コードの主観的有用性に基いた恣意的な判断を嫌う。
規制の例としては、名前空間に関する暗黙のコンベンションを読み取れない子が時折出現してはかわいそうなことになっているくらいか。
135:デフォルトの名無しさん
08/10/08 21:34:31
packageとかperlってモジュール登録したバカな奴いたような気がする。
CPANテロ。
136:デフォルトの名無しさん
08/10/09 23:50:53
文字列が全角ひらがなと全角スペースと半角スペースのみで
構成されているかどうか調べる正規表現が分かりません。
先輩方。よろしくお願い致します。
137:デフォルトの名無しさん
08/10/10 00:13:44
始めましてこんばんわ。
最近までCGIのソースを見て作ってきたのですが飽きてきたので他のものに
触れたいと思っているのですが皆さんはperlでどのようなことをしていますか?
自分はソフトウェアかネットワークプログラミングをやろうと思っているのですが
(というかそのぐらいしか知らないです。)皆さんの意見を参考にもし面白そうなの
があればやってみようと思ってます。
ただCGや音楽、ゲームはなしの方向でお願いします。
138:デフォルトの名無しさん
08/10/10 00:22:17
まず日本語のお勉強をしましょうね。
139:デフォルトの名無しさん
08/10/10 01:36:24
始めましてこんばんわ。
最近までCGIのソースを見たり、書いたりしてきたのですが飽きてきてしまったので
他のものにも触れてみようかなと思っているのですが皆さんはperlでどのようなことをしていますか?
自分はソフトウェアかネットワークプログラミングをやりたいと思っているのですが
皆さんの話を参考にもし面白そうなのがあればそれらも検討しようと思っております。
ただCGや音楽、ゲームはなしの方向でお願いします。
こんな感じでよろしいですか?
140:デフォルトの名無しさん
08/10/10 06:06:59
日本語でおk
141:デフォルトの名無しさん
08/10/10 09:13:09
えぇ。いい加減もったいぶらず教えてください。
そんなに日本語変ですか。
142:デフォルトの名無しさん
08/10/10 09:30:14
「ソフトウェア」の意味がわかってないので変てこになっているのか?
143:デフォルトの名無しさん
08/10/10 10:00:42
何を始めたんだろうっていう疑問が、一行目でいきなり来るけどな。
144:デフォルトの名無しさん
08/10/10 10:08:06
>>141
ソフトウェアはソフトウェアプログラミングのことを言ってます。
>>143
そこは変換ミスなのでスルーしてください。
本当はその漢字が正しいと勘違いしていただけですが。
145:デフォルトの名無しさん
08/10/10 10:23:20
>>144
> ソフトウェアはソフトウェアプログラミングのことを言ってます。
じゃあ、「ソフトウェアプログラミング」の中の「ソフトウェア」の意味は?
146:デフォルトの名無しさん
08/10/10 10:47:54
>>145
アプリケーションソフトなどのことじゃないのですか?
147:デフォルトの名無しさん
08/10/10 11:00:01
アプリケーションソフトとは?
って話になるだろ・・・
148:デフォルトの名無しさん
08/10/10 11:09:22
>>147
そんなことを聞いてどうするつもりですか?
なぜあなたがそんなことを細かく聞いてくるのか自分には理解が出来ない
のですが?
ソフトウェアプログラミングのソフトウェアがアプリケーションソフト以外の
ものをさすならわかりますがそれで間違いないならこれ以上追及する意味が
ないと思うのですが?
149:デフォルトの名無しさん
08/10/10 11:16:22
ソフトウェアをやりたい
アプリケーションソフトをやりたい
ってどういうことやねんってことでしょ
150:デフォルトの名無しさん
08/10/10 11:29:51
じゃあ、インクリメンタルサーチ可能な全文検索システム作ってちょ。
151:デフォルトの名無しさん
08/10/10 11:33:45
たぶん
「デスクトップアプリケーションを作りたい」
では・・・
152:デフォルトの名無しさん
08/10/10 11:38:46
>>148
君がやりたい内容が理解できないから
掘り下げて聞いているのですよ。
ソフトウェアでもアプリケーションソフトでも、意味が広すぎる
153:デフォルトの名無しさん
08/10/10 11:47:51
自分が聞きたいのはソフトウェアプログラミングの内容ではなくて
皆さんがperlでどんなことをやってるかなのですが・・・?
154:デフォルトの名無しさん
08/10/10 11:58:13
いろいろ
155:デフォルトの名無しさん
08/10/10 12:01:47
オナヌー
156:デフォルトの名無しさん
08/10/10 12:08:17
>>153
「どんなこと」も広すぎるから、方向性を絞り込む為に「やりたいこと」を参考にしたいのだが
そのやりたいこともよくわからないので掘り下げてみた
エロ動画サンプルを自動巡回DLオススメ
157:デフォルトの名無しさん
08/10/10 12:19:58
あとはエロ画像の重複チェックとかかな。
md5ハッシュとファイルサイズを持っておいて、この2つでチェックすれば
まぁほぼ確実な精度で重複する画像が見つけられるだろう。
158:デフォルトの名無しさん
08/10/10 12:27:14
・エロ画像巡回収集、サムネイル生成、整理
・エロ動画巡回収集、解凍、整理
自分の場合はこんな感じ。いつも思うことだけどPerlの用途は幅広いね。
159:デフォルトの名無しさん
08/10/10 13:20:15
それPlaggerでできるよ!
160:デフォルトの名無しさん
08/10/10 13:38:48
エロは偉大だなw
161:デフォルトの名無しさん
08/10/10 14:00:04
Perlだと2ちゃんブラウザとかトリップ解析とか人工無脳とか作った
162:デフォルトの名無しさん
08/10/10 14:02:18
自宅でgoogleを作った
163:デフォルトの名無しさん
08/10/10 14:03:22
なんだそれは
164:デフォルトの名無しさん
08/10/10 14:43:01
実行環境のIPとSubnet Maskを取得する方法を
教えてください。
ifconfig/ipconfigで調べることはできるんですが、
ひょっとするとモジュールがあるかも、と思いました。
ググったら、Net::Netmaskモジュールを見つけたんですが、
これは違いました。
わかるような情報を
165:デフォルトの名無しさん
08/10/10 14:48:32
>>163
おっと、「自宅でgoogle」を作った。な。
ウェブブラウザのアクセス追跡やその他SBMや優秀なリンクリスト系ブログから
URLをかき集めてクロリングクロリング。ず〜っと16KB/secのバンド幅でかき集め
続けている。
166:デフォルトの名無しさん
08/10/10 14:52:39
>>164
つNet::Interface
167:デフォルトの名無しさん
08/10/10 14:53:24
>>164
ええと…… 言周 言周 言周 ……Net::Interfaceはちがう?
168:デフォルトの名無しさん
08/10/10 16:38:13
Perol
169:デフォルトの名無しさん
08/10/10 16:47:44
オマエらこういう質問に無視しないでマジメに答えてやれよ。
>>136
^(?:\x82[\x9F-\xF1]|\x81[\x4A\x4B\x54\x55]|\x20|\x81\x40)+$
これでどうだろうか?
でも、スペースがあると何かと厄介だよな。
フォームとかで使う事を考えると、スペース削除して目的達成できるなら
事前に半角全角スペース全削除して平仮名だけチェックするのがイイと思う。
170:デフォルトの名無しさん
08/10/10 16:57:45
>>169
> オマエらこういう質問に無視しないでマジメに答えてやれよ。
自分は人々より高い位置にいるという自己認識を露わにしながら
出現する人ってなんなの?
171:デフォルトの名無しさん
08/10/10 17:19:30
「マジメに答えてやれよ」ってのは、皆答えることができるってのが前提だから、
別に自分を「人々より高い位置にいる」とは認識してないのでは。
誰も答え「られない」が、俺だけは答え「られる」って構図を出してきたんなら、
まぁ、確かにそういう気位を感じなくもないが。
172:デフォルトの名無しさん
08/10/10 17:25:33
本当に質問に答える気なら、まず最初に「エンコーディングは?」って
質問返ししなきゃならんし、面倒臭いしスルーしてた。
文字コードSJIS決めつけで答えてるし、どっかのページのコピペでしょ。
もしかしたら、質問者本人の煽りレスかもね。
173:デフォルトの名無しさん
08/10/10 17:26:17
>>169
司令官が出現しました!!
174:デフォルトの名無しさん
08/10/10 17:51:42
unicode文字列にデコードされている前提で、
/^[ \p{Hiragana}]+$/
でいいんじゃね?
'['のあとの2文字は半角スペースと全角スペース。
175:デフォルトの名無しさん
08/10/10 20:27:16
プログラミングPerlって2000年発行でちょっと古い気がするのですが、それでも買いですか?
176:デフォルトの名無しさん
08/10/10 20:55:28
即答かコード一行書いて終わりみたいな質問なら答えやすいよね。
>>175
買って損はない
177:デフォルトの名無しさん
08/10/10 20:58:11
>>176
サンクス
買ってみます
178:デフォルトの名無しさん
08/10/10 21:16:28
>>177
バージョン5.6がベースだからunicodeとスレッド関係は要注意。
この2つは5.8以降で互換性が無くなってるからあくまで参考に留めるべし。
5.8以降のunicodeの扱いはwebで検索した方が良い。
179:デフォルトの名無しさん
08/10/10 21:27:50
>>178
了解しました
180:デフォルトの名無しさん
08/10/10 21:50:48
175の人は「perldocがあるからラクダ要らない」説もあることを頭に入れとくといいかもしれないよ。
自分は2002年にラクダ和訳が出てすぐ「欲しかったから」買ったんだけど
純粋に実用面だけを考えたら、他人に「買って損はない」とまでは言えないな。
181:デフォルトの名無しさん
08/10/11 00:07:45
2ちゃんねるがあればマニュアル本を買う必要は無いだろ
182:デフォルトの名無しさん
08/10/11 01:53:16
>>180のオススメのPerlの本は何?
183:デフォルトの名無しさん
08/10/11 02:01:32
本は要らない
184:デフォルトの名無しさん
08/10/11 09:06:11
プログラミングPerlよりPerlクックブックの方が役に立つと思う。
185:デフォルトの名無しさん
08/10/11 09:17:50
今プログラミングPerl久しぶりに開いてみたら・・・
訳出作業に使用した作業環境
IBM ThinkPad 535(Pen120MHz 40MB HDD2GB)
FreeBSD2.2.1+PAO Mule2.3
186:デフォルトの名無しさん
08/10/11 09:23:21
元々料理本はラクダの一部じゃん。
だから、説明に欠落がある。
187:デフォルトの名無しさん
08/10/11 15:46:11
>>137
ソフトウェアってのはハードウエアではないあらゆるものを指すわけで、あなたが飽きてきたっていう
「CGIプログラム」だってソフトウエアです。家電のプリント基板に入っている組み込み系もソフト
ウエアですし。だからみんな「ソフトウエアがやりたい」って、何がやりたいの? と訊いてる訳です。
…てなことは説明しなくてもわかって欲しいのですが。
Windows上で動くGUIなプログラムのことなんですかね…。perlでも書けなくもないですね。
でも結局WinAPIをいじるから、そっちの知識がないと書けないですし。VBやVCという言語がある
ってことくらいは知っててもいいと思います。なでしこってのもあるよ。
そもそも、プログラムの形態とか言語についてあれこれいう前に、作ったプログラムで何がやりたいか、
を具体的にイメージできないと、モチベーションを維持するのは難しいと思います。私の経験上
そうです。何か作りたいものがあって取り組むのが一番上達が早いです。
私はCGI屋なんで、その立場から言わせてもらうと、CGIだっていつまでも奥が深くて、飽きるなんて
ことはないですよ。できることはたくさんあるし、やりたいことも尽きません。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5023日前に更新/169 KB
担当:undef