[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 01/23 21:37 / Filesize : 239 KB / Number-of Response : 927
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:10:40 ]
"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、
Perlの奥深さについて皆で語り合い、追求してまいりましょう。

CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
( WEBプログラミング板 pc11.2ch.net/php/ )

CGIの質問は答えが Perlと全然関係ない話に帰着する場合が
多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

www.perl.org/get.html
● 2008/08/11 現在の最新版(安定版): 5.10.0
● 2008/08/11 現在の開発版: 5.9.5

▼ 前スレ
Perlについての質問箱 36箱目
pc11.2ch.net/test/read.cgi/tech/1215569470/

リンク集は>>2-3
Perl 日本語処理の基礎の基礎 >>4
過去スレは>>5-6 あたり

52 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 18:32:06 ]
┌────────┐
│変数名─アドレス │
│                │
│   データ       │
└────────┘
変数名が$hogeでデータがテステスの時
つまり$hoge = "テステス"の時、

print $hoge;だとデータ部分が表示されて
print \$hoge;だとアドレス部分が表示されるけど
print \\$hoge;も問題なく表示できると言うことは
この時内部的に\$hogeというアドレスをデータに持つリファレンスが生成されていて
その内部で生成されたリファレンスのアドレスが表示されていると言うこと?
つまりprint \\$hogeの裏側では↓こういうのが内部で行われてるんですか?

$hoge_reference = \$hoge;
print \$hoge_reference;

      ┌────────┐
      │$hoge_r─\$hoge_r.│
      │                │
      │   \$hoge      │
      └───╂────┘
┌──────╂─┐
│ $hoge ─ \$hoge │
│                │
│.    テステス     │
└────────┘

53 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 19:23:54 ]
>>52
> print $hoge;だとデータ部分が表示されて
> print \$hoge;だとアドレス部分が表示されるけど

ちがう

54 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 21:14:34 ]
ちがわない

55 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:32:50 ]
>>52
っ[Devel::Peek]

56 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 02:02:57 ]
>>52
それであってるよ

57 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:55:33 ]
print $hoge;
# $hoge の持つ値が表示される

print \$hoge;
# $hoge を指す参照を得て、その内部表現を文字列化したものが表示される

「データ部分」「アドレス部分」という表現には、この辺の理解不足感が漂っている。
>>52 がんがれ。

58 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 18:02:06 ]
そこまで書かなかっただけだろ。

59 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 18:34:39 ]
>>58
おまえの推測はどうだっていい。


60 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 18:41:43 ]
質問自体は無視して語句の間違いの指摘に熱中する俺らはム板の鏡や!



61 名前:57 mailto:sage [2008/08/14(木) 20:12:44 ]
>>60
質問自体は >>55,56 で解決だろうから放置。

語句の間違いは要点ではなくて、
その表現が出てくる背景を邪推してみた。

単に口下手というか慣れていないだけだったら
当方まったく的外れなのでスルー推奨。

>>53 の気持ちは分からないでもないけど、
「ちがう」で終わりではあんまりだろうと思い、
>>53 の感じたであろう、漠然とした「チガウ感」を
>>57 で言語化してみた。

余計なことだった。今は反省している気がする。

62 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:19:46 ]
騙すのはいけないやな。

63 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 03:17:01 ]
でもプログラムって
1文字違っただけで動かなくなるから
そういう性格の人が向いてるのかもね。

64 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:10:49 ]
高校の数学をちゃんとやった人なら、
一つの値をもつものがスカラー、
複数の値を持つものがベクトル、
ということは覚えていますね。

、、、って参考書に書いてあるのだが、
英語読みだとベクター、日本語読みだと
ベクトルってことは、もしかして、
スカラーも、日本語読みで、スカトル、とかって
変な読みにされてた可能性もあるのかな。

65 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:13:49 ]
my $hoge=q|a|;

say $hoge;
say \$hoge;

   ↓実行結果

a
SCALAR(0x1a9a6c4)

↑これはなに?

66 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:22:11 ]
正規表現って、マッチと置き換え、そのほかに
なにか使い道ある?

(1)マッチ
(2)tr///使用の置き換え
(3)s///使用の置き換え

おおまかにわけて
この3つしかないとおもうんだけど。

67 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:32:37 ]
system ('notepad.exe','abcde.txt');

これでメモ帳が開ける
感動

68 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:33:50 ]
sysytem ('aaa.midi');

↑こんくらいのカンタンな文法で
midiを鳴らすってできない?

69 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:36:05 ]
板違いです。

70 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 05:09:24 ]
このスクリプト、思い付きをすぐ投げてくるだけじゃなくて
突っ込みどころを用意してくるから食いつく人が出るんだよね。



71 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 06:07:05 ]
大手大企業に勤める俺が簡単に説明してやろう。
100人以上見てきたけど、この傾向だけは異論を許さない。


[クラス1]MARCH:テキストや本を見て仕事をする


[クラス2]旧帝大、早慶:テキストや本の原理を理解して仕事する。


[クラス3]東大、京大:テキストや本の原理を新たに創造する。

72 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 06:15:59 ]
誤爆したと書かないことに異論を唱えたい

73 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 06:42:54 ]
books.google.co.jp/books?as_q=perl&num=100&as_brr=0&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&as_brr=0&lr=lang_ja&as_vt=perl&as_auth=&as_pub=&as_drrb=c&as_miny=&as_maxy=&as_isbn=

↑これで、ファイヤフォックスが起動して、
グーグルブック検索のページが開くよ!
すごいね!

74 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 06:44:07 ]
>>73はまちがえた。

system ("C:/Program Files/Mozilla Firefox/firefox.exe","books.google.co.jp/books?as_q=perl&num=
100&as_brr=0&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&as_brr=0&lr=lang_ja&as_vt=
perl&as_auth=&as_pub=&as_drrb=c&as_miny=&as_maxy=&as_isbn=");

↑これで、ファイヤフォックスが起動して、
グーグルブック検索のページが開くよ!
すごいね!

改行はエディタで手動でつないでね!

75 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 06:45:42 ]
(1)
ところで、rubyのときは、IEを起動するには
win32APIを使わないとだめだって言われたんだけど、
なんでPerlはWin32APIを使わないでもファイヤフォックスを
起動できるの?

(2)
Perlもwin32APIを使えるの?
もし使うとしたらどういう時?
CD-ROMドライブのフタをあけたいときとか?

76 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 09:15:03 ]
(3)
どうしてググらないの?どうして自分で調べようと努力しないの?

77 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 10:38:06 ]
use feature qw( :5.10 );

my $a;
$a=<>;
say qq|$a|;

↑これでキーボードから入力してエンター押すと、
キーボードから入れた文字列が画面に表示されるんだけど、
<stdin>って書かなくてもいいの?

78 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 11:09:33 ]
(4)
どうして自分で実際に試した、目の前の現実を信用できないの?

79 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 11:20:29 ]
use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)";
use Encode;

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

my $a;
my $c=1;
my @d;
for ($c=1;$c<=7;$c=$c+1){
print "$c"."文字目"; #←●1
#print "$c文字目"; #←●2
$a=<>;
chomp $a;
push (@d,$a);
}

say qq|\n|;

my @b;
say q|ソートの結果は、、、|;
@b=sort @d;
say qq|@b|;
---------------------------
↑これで、●1は動くのですが、●2にするとエラーになります。
実質的に1と2は同じもののはずなのに、なぜでしょうか?

80 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 11:30:50 ]
>>78
アスベスト吸って、肺に入って、
中皮腫になるまで、20年間ありますよね。



81 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 11:41:42 ]
このスレって、年齢分布、どれくらい?

10台 ■
20台 ■
30台 ■■■
40台 ■■■■
50台 ■■■■■■■■

↑こんな感じ?

82 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 11:48:06 ]
print "$c 文字目";
これだとエラー出ないんだよね。

print "$c文字目";
これだと、エラーになる。

どうも、
$c文字目
これ全部をスカラー変数だと思い込んでるみたい。
半角スペース空けないとだめなのかな。

83 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:00:25 ]
>>50読め

84 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:02:07 ]
>>79
>>82

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

$c文字目 = 100;
print $c文字目,"\n";

$文字目 = 200;
print $文字目,"\n";


85 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:03:42 ]
$うんこ = 300;
print $うんこ,"\n";

86 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 20:25:17 ]
今日、参考書を読んでいて、
use English
という、ステキ構文を発見した。

おまいら、ちゃんとこういう便利なものは
おしえてくれなきゃ

87 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 20:27:39 ]
perlってさ、データーを放り込むのに

(1)<stdin>でキーボードから打つ
(2)<>でキーボードから打つ
(3)ファイル名を指定して、ファイルごと食わす
(4)引数で入れる perl abc.pl abcdeみたいな
(5)#!usr/local/bin/perlを指定して、perlを省略して食わすabc.pl abcdeみたいな
(6)ファイルごと食わして、その処理結果を別ファイルに出力する perl <a>bみたいな

以上の6つのやり方があるよね

88 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 20:56:02 ]
落書きはチラシの裏にしろ

89 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:29:30 ]
プロトタイプについて質問です。


通常、サブルーチンにプロトタイプを付けて記述し、コードの先頭付近で

 sub Func1( \@ ) ;

とでも書いておき、そのあと実際に呼び出すときは

 Func1( @array );

と書けば自動的に配列のリファレンスが渡されます。
また、このときスカラーなど間違った変数を渡すとエラーとなりますよね?


モジュール HogeHoge.pm のパッケージ HogeHoge 内に同様のサブルーチンを記述したとします。
このモジュールの先頭付近で

 package HogeHoge ;
 sub Func1( \@ );

と書いてみたのですが、うまく機能しているように見えません。
自動的にリファレンスが渡されるわけでも、別の変数を渡した時にエラーが起きるわけでもありません。
書いても書かなくても同じ挙動に見えます。

どのように記述するのが正しいのでしょうか?

90 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:45:49 ]
プロトタイプは引数の型チェックをするために使うものではなく、
変則的な呼び出し方をする一部の組み込み関数を再定義するときだけ使うもの。
リファレンスを渡したいなら明示的にリファレンスを渡すほうがよい。



91 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:52:51 ]
モジュール化する以上、自分が使うとも限らないですし(数ヵ月後の自分は他人だ)
エラーを出せるなら出して欲しいんですよね。


92 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 16:53:21 ]
Perlで、listでなくてset(集合)のデータ型を提供するような
ステキなモジュールはありますか?
CPANを探しているんですが、なかなか見つからなくて・・・

Pythonに組み込みで存在するアレです

93 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 17:16:36 ]
質問

use Win32::FileOp qw(ShellExecute);


ShellExecute('open', 'notepad.exe');

↑このコードをコピペして実行したら、
Can't locate Win32/FileOp.pm in @INC (@INC contains: C:/Per
at untitled1.pl line 1.
BEGIN failed--compilation aborted at untitled1.pl line 1.

というエラーが出ました。
ひょっとして、Win32::FileOpは標準で入っていないの?

94 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 17:42:56 ]
>>89
=== HogeHoge.pm ===
package HogeHoge ;
use Exporter;
use vars qw(@ISA @EXPORT) ;
use subs qw( Func1(\@) ) ;
@ISA = qw(Exporter);
@EXPORT = qw(Func1 );

sub Func1 (\@){ print qq{42\n} ;}
1;
=== hoge.pl ===
use HogeHoge ;
my @arr = (1) ;
Func1 @arr ;
# my $var = 1 ;
# Func1 $var ;
=== 実行 ===
perl hoge.pl
42

95 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 18:57:09 ]
>>93
また質問中が湧いたか
そのくらいてめぇで調べろ、ぼけ


96 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:01:15 ]
>>92
search.cpan.org/dist/Set-Scalar/lib/Set/Scalar.pm
union intersection complement 辺りの思いついた語で CPAN 漁ってて見つけたもの。

Python 知らないしこれを使ったこともないので素敵かどうかはわかりませんが。

97 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:29:04 ]
@a=<stdin>;

↑これやったら、永遠にキーボード入力の
フェーズから、抜けられない?

98 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:32:56 ]
EOFを送れ。
UNIXならCtrl+D, WinならCtrl+Z(多分)

99 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 22:02:16 ]
古い参考書読んでたら、

「Perlでは残念だがらユニコードは使えません」

とかって書いてある。いったいいつから
使えるようになったんだ?

100 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 22:03:10 ]
use diagnostics;

↑これって普通に使うの?
テンプレには記載がないようだけど。



101 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 22:07:29 ]
www.donzoko.net/doc/memo/badexample.html

これはいったいなんだよ
わろたよ

102 名前:92 mailto:sage [2008/08/16(土) 23:49:15 ]
>>96
おおおっ、いい感じのモジュールですね
標準的な操作もきっちりサポートされてますし
サンクスです

>>100
strictやwarningsのプラグマと違って、
運用コードでは要らないかと
自分の場合、開発コードでも要否は微妙です

103 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 01:43:51 ]
>>99
んなもん調べりゃすぐにわかると思うの。
自分の欲しい情報なのに、自分で調べずに他人に探させようとする質問には答えたくないの。

>>100
使いたかったら使えばいいと思うの。
マニュアル読んで有益かどうか判断がつかないなら試してみればいいと思うの。
「普通」どうかなんて、どこで誰が何やってるかによって変わると思うの。

で、「普通」を知ってどうしたいの?

104 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 09:17:40 ]
>>103
そんなもん、なるべくデフォルトにあわせるのは
当然じゃないですか。

昔富士通のパソコン買ってひどい目にあったんだから。

105 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 09:20:44 ]
ところで引数って

abc.pl d e f g
みたいにコマンドラインから入力するときに
渡すけど、これってスペースで区切られたら、
「ひとつの引数」
って認識ですよね。いまの例だと
dとeとfとgが引数。

だと、もしかして、perlってスペースを含む
文字列や数字は引数として渡すことはできないの?

たとえば
a b (半角のa、半角のスペース、半角のb)
を一つの引数としてコマンドラインから渡そうとしても、
14才のperlタンが勝手に、
「あーこれは一つの引数ねーホエー」
とかって勝手に処理してしまうんですよね?

106 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 09:59:08 ]
いま使ってるエディターで、デバッグモードってのがあって、
それを使うと

Loading DB routines from perl5db.pl version 1.3
Editor support available.

Enter h or `h h' for help, or `perldoc perldebug' for more help.

main::(untitled6.pl:7): binmode STDIN => ":encoding(cp932)";

DB<1>

↑こんなのが出てくる。これってどう使えばいいんだろう?

107 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 10:06:33 ]
perlってさ、clsってないんだね。
ゲーム作れないジャン。

108 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 10:29:38 ]
自己レス
過去ログ読んだらあったわ

system q|cls|;

これでCLSできる。やりー

109 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 10:41:31 ]
use feature qw( :5.10 );
use Time::HiRes 'sleep';
$|=1;
#----------------------------------

system q|cls|;
sleep(1);
my @a;
@a=('a','b','c','d','e');
my $b;
foreach $b (@a){
say $b;
sleep(1);
}

↑これで、画面をclsで消して、
キレイにしてから、ゆっくりと文字を出力できるよ。
感動。

110 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 10:53:13 ]
use warnings;
use strict;
use diagnostics;

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

use feature qw( :5.10 );
use Time::HiRes 'sleep';
$|=1;
#----------------------------------
system q|cls|;

my @a;
@a=('ささやき','えいしょう','いのり','ねんじろ!');

my $b;
foreach $b (@a){
sleep(1);
say $b;
}

sleep(3);
say qq|\n\n勇者は灰になりました\n|;

↑やった!ウイザードリーだ!



111 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 11:05:25 ]
>105
ここはPerlの質問スレだぜ?

112 名前:103 mailto:sage [2008/08/17(日) 11:09:45 ]
>>104
富士通さんの製品がどう関係してるのかは知らないけど、
マジレスすると、Perl のデフォルトは、当たり前だけれど何も use しない状態。
「デフォルト」を「比較的多くの人が採用しているやり方」という意味で使っているなら、
標準モジュールや CPAN モジュールを読んで統計取るなりすればいいじゃない。
そして自分にとって有益であるか、または必要であるなら、
誰が使っていなくても使えばいいじゃない。

「よいとされているコーディングスタイル」を扱った書籍はいくつもあるし、
perlstyle マニュアルページにも情報があるんだけれど、
>>100 はどうやらそれらを調べていないようなので、
そーゆー質問は「自助努力の足りない教えて君」扱いされるの。

113 名前:103 mailto:sage [2008/08/17(日) 11:13:34 ]
>>105
> だと、もしかして、perlってスペースを含む
> 文字列や数字は引数として渡すことはできないの?

できるの。


> 「あーこれは一つの引数ねーホエー」
> とかって勝手に処理してしまうんですよね?

ちがうの。

114 名前:103 mailto:sage [2008/08/17(日) 11:19:06 ]
>>106
> Enter h or `h h' for help, or `perldoc perldebug' for more help.

help を見るには(DB<>プロンプトで) h と入力するか h h と入力するか、またはもっとくわしい help は perldebug マニュアルページを見れ

って書いてあるの。見てから質問して欲しいの。
てゆーか見てればこんな質問出てこないの。

115 名前:103 mailto:sage [2008/08/17(日) 11:33:11 ]
>>107-110
日記は自分のブログにでも書いて欲しいの。
少なくともこのスレにはそういうのいらないの。


116 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 11:45:57 ]
>>103のようなチンポしゃぶりがいる限り、寄生虫は出現しつづける。

117 名前:103 mailto:sage [2008/08/17(日) 12:32:20 ]
>>116
だってかわいそうなんだもの。
この子がこのまま社会に出るなんて、ぞっとするんだもの。

118 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 13:58:33 ]
>>117
社会に出て来ることを前提にするからそうなるわけで
社会が受け入れを拒めば良い。ニートも珍しくない時代だぜ。


119 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 14:00:35 ]
>>117はすでに問題の寄生虫に依存している。



120 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 14:03:36 ]
>>117
歪んだ持論で100に粘着したり、
「ぐぐれカス」で済むところをねちねち言ったり、
自治しようとしたり。

お前さんのウザさは、107と変らんよ。



121 名前:103 mailto:sage [2008/08/17(日) 16:33:09 ]
>>118
ニートが社会に拒まれてそうなるというのは新説な気がするの。
どちらにしろそういう事例は少ないほうがいいと思うの。
でもこのスレでやるべきことじゃないとは思うので反省してる。

>>119
誰かボクを隔離して欲しいの。
でもこれ以上迷惑になるいけないのでがんばって自分で克服します。

>>120
ウザくてごめんなさい。
持論が歪んでるのは自覚があるので鵜呑みは危険と言っておくの。

ボクが言うのもなんだけど、みなさん気にせずPerlのお話しましょう。

122 名前:デフォルトの名無しさん [2008/08/17(日) 17:08:03 ]
なんかすごく怖くなってきた

123 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 18:19:19 ]
>>110
これで、文章が表示されるのと合わせて、
音楽を鳴らしたいんだけど、
(本物のウイザードリーみたいに)
Perlだと実装はものすごく面倒なの?

124 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 18:27:00 ]
みんな聞いてくれ!
pc11.2ch.net/test/read.cgi/php/1204488452/556
で、質問がでていたので、
pc11.2ch.net/test/read.cgi/php/1204488452/560
と、オレ様が、かっこよく回答しちゃったぜ!
ちなみに、あってるかどうかは、知りません

125 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 18:27:01 ]
がんばって、あなたなら出来るわ

126 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 18:33:02 ]
合ってないところがいいな。

127 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 18:46:30 ]
統失で10年くらい入院したあと退院してPerlに目を付けたという感じか?

128 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 19:58:01 ]
>>123
Win32::Sound

129 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:00:22 ]
perldoc に関する質問です。

ある単語 foo に関する perl のドキュメントを読みたいが、

perldoc foo → No documentation found for "foo"
perldoc -f foo → No documentation for perl function `foo' found
perldoc -m foo → No module found for "foo"
perldoc -q foo → No documentation for perl FAQ keyword `foo' found

となるとき、すべての perl ドキュメントから foo を検索して、
どのドキュメントを見ればよいか表示するような機能はないでしょうか?

例えば __PACKAGE__ を調べようとしても上の4つではだめで、
最終的には perldoc perl の出力を眺めて当たりを付けて、

perldoc perldata

に辿り着きましたが、当たりを付けるまでに手間がかかります。

zsh のマニュアルの man zshall のように、インストールされているすべての
ドキュメントを連結表示するとかでもいいのですが。


130 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:36:17 ]
aaa
aaaa
aaab
aaaaa
aaaab

参考書読んでて、
文字列ソートすると、こういう順番に
なります、と書いてあって、どうしても理解できなくて、
ホームページの正誤表みたら、誤植だった。
ただしくは
aaa
aaaa
aaaaa
aaaab
aaab
だった。なんでbが先にくるかなあ?と
1時間悩んだ。



131 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:48:22 ]
>>129
力技。
find /usr/lib/perl5/5.10/pods -name '*.pod' | xargs grep -i KEYWORD | less
あとはGoogle DesktopやWindows Searchでドキュメントの領域を検索対象にするとか。


132 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 23:25:23 ]
>>128
なんかすげー難しそう
1行書いたら音が出るみたいのを
イメージしてたんだけど、
HSPとかRPGツクールとかだと
音出すなんて簡単だったんだけど、
Perlでは難しいってことかな?

133 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 23:31:27 ]
>>131

ありがとうございます。find | xargs grep | less 系のやり方をする
ことにしました。(あるいは同様のコマンド)


134 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 23:36:25 ]
>>129
これってぼくも誰も作ってないのかなと思ってるんだけど、
やっぱり誰も作ってないのかい。

135 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 23:43:32 ]
検索してたらこんなものを見つけてしまった

353 名前:名無しさん 投稿日:2001/02/08(木) 12:40
Perlで音を出すことって出来ないでしょうか。
処理が終了したときにちーんと鳴らしたいのですが。

www.angelfire.com/ak5/2ch-web-program/kako/979894521.html

136 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:05:14 ]
>>128
やってみた。
かんたんだった。

use Win32::Sound;
Win32::Sound::Volume('100%');
Win32::Sound::Play("file.wav");
Win32::Sound::Stop();

↑これを書くだけで、できた。
Win32::Soundは最初から入っていた。

137 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:26:36 ]
Win32::MIDIって使い方がよくわからんな。
midiを鳴らすときは、必ずWin32::MIDIでないとだめなの?
それとも、midiもWin32::Soundでいけるの?

138 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:54:45 ]
perlでmidiファイルを鳴らす方法がまじでわからんわ。
midiファイルを指定して、すぐに鳴らすとかできないのかな?

139 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 01:00:59 ]
>>134
順序が逆だっちゃ。
大量のドキュメントに対して grep などによる全文検索だけでは不便だから perldoc のセクション特定用の各オプションがある。

140 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 02:04:19 ]
>>139
> 順序が逆だっちゃ。

これは順番の問題ではない。不便な全文検索が問題なら不便でない全文検索が
求められるだけのこと。



141 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 02:38:01 ]
ま、いずれにせよ、「それを欲しい者がそれを作る」のが基本だべさ。

142 名前:103 mailto:sage [2008/08/18(月) 04:34:08 ]
>>140
全文検索自体が不便つーことでなく、単純な全文検索だとどこからでもパターンを拾ってきちゃうから、-f だの -q だのがあんだべ、って話。
パターンがどのファイルのどこにあるか知るだけなら find, grep で特に不便もないし、それ用の Perl スクリプトを書いても2分てとこだろ。

143 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 04:37:30 ]
>>142
> パターンがどのファイルのどこにあるか知るだけなら

そんなのじゃ不便過ぎるだろ。


144 名前:デフォルトの名無しさん [2008/08/18(月) 07:43:42 ]
不便に思ったことないんだがどんな使い方がしたいんだ?

まさか初めてのPerlすら持ってない奴の戯れ言じゃないだろうな……

145 名前:デフォルトの名無しさん [2008/08/18(月) 07:49:29 ]
子供はHSPでも使ってろ

HSPには可変長配列は無いがな!!(まさに外道)

146 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 12:55:44 ]
アセンブリを外道と言うな。

147 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 15:27:11 ]
夏だなあ

148 名前:デフォルトの名無しさん [2008/08/18(月) 15:43:15 ]
確実にここではないと思うのですが、どこなのか分からなくてスミマセン。

perl書くときに $ とか %#"'() など良く打つと思いますがshift押さずに入れるように
するようなソフトや方法はありますでしょうか?

数字はテンキーがあるのでキーボードの1〜9の範囲は全部記号にしたいのですが。

149 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 16:39:16 ]
>>134
もう数年前になるけど、大学の研究室に、Perl関係のドキュメントを
インクリメンタルに全文検索でひけるソフトがあった。

Rubyで書かれていたけどw


150 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:10:00 ]
active perlでのforkについてです

子プロセスの上限を決めてforkで処理するのに、
pidをpushしていって、上限を超えたらいちばん古い子プロセスをwaitpidしていますが、
たまたまそいつが遅いと他のプロセスはとっくに終わってるのに先頭のを待ち続ける、
というはめになります

pidのリストのうち、どれか一つ終わったら、という処理をさせるには
どうすればいいですか



151 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:31:18 ]
>>150 $SIG{CHLD} じゃダメ?

152 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:31:28 ]
>>150
っ[Parrallel::ForkManager]






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<239KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef