新しくperlで標準で欲しい関数は? (203レス)
1-

65
(1): _gunzip@書けるの? 01/12/30 06:30 ID:??? AAS
>>60
Perl6では可能ですよ。詳しくは
RFC025 外部リンク[html]:dev.perl.org と、
Apocalypse 3<Operators> の "multiway comparisons" の項を見てね。
外部リンク:dev.perl.org

>>62
RFC26 外部リンク[html]:dev.perl.org で提案され、Perl6で
取り入れられる予定です。Damian Conway氏のExegesis 2
"Take that! And that!" に実例が出てきます。
また、省略時パラメータは //= で行います。
ですから、例えばC++で(今書いてたコードから拝借)

void
QMenu::insert(const QString& text, int index = -1)
{
    // なんやかや
}

をPerl6では、

sub
QMenu::insert(string $name is constant, int $index //= -1)
{
    # なんやかや
}

と書けます。
66: 名無しさん@お腹いっぱい。 01/12/30 11:50 ID:??? AAS
>>65
良くわからんけど、仮引き数は全部constになるのかな
つまり、内部的に実引き数へのポインタが@_で@_へのポインタが
仮引き数になるけど、仮引き数のプロパティはconstantになるとか何とか・・・・
んー、結構良いけど何となく嫌 (^ー^;
Damian 氏はC++ファンなんだろうか・・・
67: 名無しさん@お腹いっぱい。 01/12/30 16:53 ID:??? AAS
>>64
Perl5でも同じことが出来ませんか。
68: 名無しさん@お腹いっぱい。 01/12/30 16:58 ID:??? AAS
できる。それぐらいは分かってるだろ。
69: 名無しさん@お腹いっぱい。 01/12/30 18:00 ID:neJVFUng(1) AAS
>>64
げげ、Perl6 で配列要素の参照方法変わるんですか...
70: 名無しさん@お腹いっぱい。 01/12/30 22:41 ID:??? AAS
標準でってことですか。失敬。
71: 1=東京kitty [dd] 01/12/30 23:25 ID:??? AAS
結構続いてるな(ぷっ
72: 名無しさん@お腹いっぱい。 02/01/03 15:02 ID:2yvOBGYW(1) AAS
本物の匿名型グロブを返すgensym()が欲しい。
いやなんとなく。
73
(1): 名無しさん@お腹いっぱい。 02/01/03 16:00 ID:??? AAS
もうすこし精度の良い乱数が欲しい。
74: 名無しさん@お腹いっぱい。 02/01/03 19:37 ID:??? AAS
>>73
外部リンク[html]:www.math.keio.ac.jp
なんかがよさげですね。。C,C++の標準関数になればみんな幸せになりそうですが・・
75: 名無しさん@お腹いっぱい。 [age] 02/01/17 02:17 ID:??? AAS
あげ
76: 469 [あえらえらえry] 02/04/21 09:11 ID:??? AAS
コテハンってウザイね。
77: 02/04/21 10:45 ID:mSKVAdKd(1) AAS
>>49
%a=(%b,%c);
じゃだめか?
78
(1): [sa\x00ge] 02/04/21 16:42 ID:??? AAS
コテハンってウザイね。
79: 02/04/21 16:47 ID:??? AAS
>>78
      チャンチャラチャンチャラ      
  (⌒)  /
 (^ @^) -
  (⊃⊂) ヽ

      オッカシー      
  (⌒)  /
 (・ @^) -
○( ⊂) ヽ
80
(1): 02/04/21 17:38 ID:??? AAS
#include "perl6.h"
#include "perl6/dbi.h"

// usage: program perl-expr files
int main(int argc, char** argv){
PERL6_MAIN_BEGIN;

Perl::SV dbh = Perl::DBI::connect("dbi:foo:bar.db");

Perl::SV sth = dbh->prepare("SELECT * FROM hoge");
sth->execute();

Perl::SV row;

while(row = sth->fetchrow_arrayref){
Perl::println(Perl::join(" ", row));
}

sth->finish();
dbh->disconnect();

PERL6_MAIN_END;
return 0;
}
81
(1): [shr] 02/04/21 18:15 ID:??? AAS
>>80
それは何?
C/C++のコードではないようだし。
82: 81 02/04/21 18:37 ID:??? AAS
C++だった。ハズカシ
83
(1): ぺるにゃん 02/04/28 20:10 ID:gfGqCBjT(1) AAS
sort のお話ですにゃ。
今の Perl は、巨大な配列を sort すると、効率が悪くなります;;

@sorted = sort(@array);

@array の要素数が増えるにしたがって、処理時間が爆発します。
これは Perl の sort() 関数が、効率の悪いアルゴリズムを
使っているせいでしょうか?

かんたんな実験により、配列の要素数 を N とすると、perl の sort() 時の
比較回数はおよそ N * log N 回のオーダーという結果がでました。これは、
配列が 100 万要素だったとしても、たかだか N の20倍程度の比較回数にすぎません。
おそらくは最高レベルの効率です。私はこれに文句をつけることはできません。

では、sort() 自体は実用じゅうぶん速いのに、
なぜ上の1行は爆発的に遅くなるのでしょうか?試しにこう書いてみました。

sort(@array);

これは@array が100万要素を超えていても、じゅうぶん高速でした。
(当然、ボイドコンテキストなので、結果は捨てられるので、意味はありません)

ということは、巨大な配列の「複製」のために、ものすごく時間を
取られているということです。それはありうることです。
ソート結果を直接 @array に代入してしまう関数があれば、
これは解決できると思います。そういう sort関数を希望ですにゃ。

( 私は ruby 使いじゃないのですが、
ruby には、「破壊的 sort」が用意されているらしいんですねぇ・・・
さすがにゃ)
84
(1): [age] 02/04/28 22:06 ID:??? AAS
switch欲しい……
サブルーチンで作ってみようと努力したが構造的に不可能だった鬱
85
(2): _gunzip@訂正歓迎 [鬱だ...。] 02/04/28 22:16 ID:??? AAS
>>83
Exegesesを見る限り、destructive sortがPerl6に取り込まれる可能性はなさそう。

>>84
Perl5では、外部モジュールで。
外部リンク:search.cpan.org

Perl6では、givenという名前で組み込まれる予定です。
(switchと命名されなかったのは、C/C++/Javaのswitchとは違うということを際立たせるためだそうで)
外部リンク[html]:www.perl.com
用例 外部リンク[html]:www.perl.com
欲張りすぎて、ちょっとわかりににくひ。(組み合わせが23通りもあるのかよ...)
86
(1): 02/04/29 11:52 ID:5LS+M/ng(1/2) AAS
うるせーバカ。
初心者は黙ってろ スレのレベルが下がる
87: 02/04/29 12:30 ID:??? AAS
>>86←典型例
88: 02/04/29 12:32 ID:5LS+M/ng(2/2) AAS
>>87
必死だな。誰かさん(大爆笑)
89: 02/04/29 14:52 ID:??? AAS
>(大爆笑)
ヤフーに帰れ
90: 02/04/29 19:01 ID:NmdFgil6(1/3) AAS
>>89
必死だな。誰かさん(大爆笑)
91: ロボ鉄 ◆MGTy6iYI [ここは誰かさんリレースレとなりましたw] 02/04/29 19:09 ID:??? AAS
>>90
必死だな。誰かさん(大爆笑)
92: 02/04/29 19:17 ID:NmdFgil6(2/3) AAS
>>91
必死だな。誰かさん(大爆笑)
93: 02/04/29 20:07 ID:??? AAS
>>92
乙武必死だな(藁
94: 乙武 02/04/29 21:16 ID:??? AAS
必死で生きてますが何か?
95: 02/04/29 21:43 ID:NmdFgil6(3/3) AAS
(゚Д゚)ハァ? しねばぁ?
96: あぼーん [あぼーん] AAS
あぼーん
97
(1): not 83 02/04/30 11:53 ID:9z6SUNiy(1) AAS
>>85
> Exegesesを見る限り、destructive sortがPerl6に取り込まれる可能性はなさそう。

そうなんですか。むむー。
せめてsortを多重定義できればいいんですがねぇ。tieのSORTでもいいですが。

それにしても新構文はかなり奇怪ですなあ。
↓かなり驚きましたよ。

if @array =~ $elem {...} # true if @array contains $elem

if $key =~ %hash {...} # true if %hash{$key}

if $value =~ (1..10) {...} # true if $value is in the list

if $value =~ ('a',/\s/,7) {...} # true if $value is eq to 'a'
# or if $value contains whitespace
# or if $value is == to 7
98
(1): 02/05/01 04:48 ID:HoZj1fyx(1) AAS
標準関数よりも、標準ライブラリを充実させて欲しい
シェルもろくに使えない奴らに「複雑な設定が必要」なんて言われもない
批判を受けるのはもういやだ。
99: 02/05/01 23:31 ID:ZTriJMsX(1) AAS
女性の股を開く関数。

もしくは、チョンを殺してくれる関数。
100
(2): 02/05/01 23:34 ID:??? AAS
>>98
これ以上ブクブク太らせて楽しい?
101: 02/05/02 04:25 ID:Opu6NMoF(1) AAS
>>97
しんだらぁ?
102: ぺるにゃん 02/05/03 05:12 ID:??? AAS
>>85

そうにゃんだ。残念。
でも明快なお答えをありがとう。

>>100
ぜい肉をとるために、getほにゃららっていう network 関連の関数を
モジュールに追い出すべきという意見はどうでしょう。
103: 02/05/03 13:14 ID:??? AAS
・ネットワーク関連の関数をモジュールに追い出し
・数学関数をモジュールに追い出し
・format writeはイラネーヨ
104
(1): 02/05/05 19:28 ID:??? AAS
いっそのこと関数全部モジュールに追い出してしまえ!
105: 02/05/05 20:11 ID:??? AAS
>>104
C言語ライクで良い感じですな。
106: 02/05/06 21:30 ID:uN5rTlAV(1) AAS
>>100
痩せすぎているので、少しは太れよってみんなから言われるよ
107: 02/05/07 20:48 ID:NQEaYM+J(1) AAS
sage
108: 02/05/08 13:20 ID:??? AAS
そういうセリフ吐く奴ってoffで合うと大概口だけいかにももててますアピールの
きもい系のヤシなんだよねw
109
(1): 02/05/08 19:53 ID:??? AAS
/bin/grepを呼ぶのにエスケープの手間がかかるんで
ファイルからgrepする関数が欲しい。
@res = fgrep(/hoge/, /\.log$/,"/var/log/");
みたいな。
110: 02/05/08 20:18 ID:??? AAS
>>109
それこライブラリの仕事だろ。
それ以前にgrepとfgrepという全く別の関数が存在することも大いに問題だし。
どうしてもというならShell.pmでも使っとけ。

#!/bin/perl
use Shell qw(fgrep);
$ENV{PATH} = '/bin';
@res = fgrep 'hoge', '/var/log';
111: 02/06/24 20:29 ID:??? AAS
今は Time::Local があるからまあ許すが
その昔なぜ localtime が標準で実装されてて timelocal がなかったのか不思議だ。
112: 02/11/25 09:32 ID:ftkefb9E(1) AAS
Thread.pmがActivePerlでまともに使えるようになってほしい。
Perl5.8.0ではちゃんと動くのか?
113: 02/11/25 20:58 ID:??? AAS
mmapを標準関数、もしくはcore moduleでおねがいぃ
114: 02/11/27 00:59 ID:??? AAS
god("jpeg画像を120*120にリサイズする");
god("テキトーなデザインを出力する");
god("このソースが人に読まれない");

っていうのが欲しいです。
115
(1): 02/12/11 10:58 ID:00jmHk8S(1) AAS
CSVファイルを扱う関数。
任意の項目によるソートとかいろいろ。
116
(1): 02/12/11 22:50 ID:??? AAS
>115
DBD::CSV使えば?
117: 02/12/12 07:00 ID:??? AAS
>>116
DBIモジュールが標準モジュールになったら使うよ。
118
(2): 02/12/15 16:09 ID:??? AAS
>>49
俺様の力作使ってはくれまいか?
sub merge
{
return(@_);
}
119: 02/12/16 10:19 ID:YT4sQXgY(1) AAS
↑すごいYO!
120: 02/12/16 23:14 ID:??? AAS
>>118
usage:
%c = merge ( %a, %b );

こんな感じ?
確かにシンプルだ……。
>>49は、キーがかぶった場合の仕様を作らなかったから、これでもいいと言える。
勉強になります。
121
(1): 03/01/12 02:03 ID:qwhpCAH/(1) AAS
marge関数はPerl6で追加を検討しているらしい。
外部リンク[htm]:allabout.co.jp
122
(2): 03/01/12 17:53 ID:??? AAS
use Benchmark;
timethis(20000, sub{ -f 'index.html'});
exit;

timethis 20000: 10 wallclock secs ( 9.77 usr + 0.00 sys = 9.77 CPU) @ 2047.08/s (n=20000)
遅すぎ、、、
もっと速くしてくれ。
123
(1): 03/01/12 19:13 ID:bGDRedPP(1) AAS
>>49 >書いても3行なんですけどね。
%c = ( %a, %b );

どこらへんに三行要るんだろう?
124
(1): ぺるにゃん 03/01/12 19:22 ID:3H9ULczA(1/2) AAS
>>122
これは、
OSに処理を依頼しているわけですから、
どの言語でやっても遅くなると思いますよ。
125: 122 03/01/12 19:27 ID:??? AAS
>>124
そうなのですか、、、
うぅ、残念です。
126: ぺるにゃん 03/01/12 21:03 ID:3H9ULczA(2/2) AAS
>>123
元質問のひとは、一時的にメモリにギュバーっと展開しちゃうのは
嫌なのではないでしょうか
127: 03/01/13 00:18 ID:KvjrngEn(1) AAS
Perlはじめたころ println() が欲しかった。
今でも欲すぃ
128: 03/01/13 01:32 ID:??? AAS
php() PHPが使える関数
129
(1): 03/01/13 02:03 ID:/r5THG1/(1) AAS
ていうか

ネットワーク関連のいらない関数ステロ!
130
(1): 03/01/13 05:39 ID:9OqkABMV(1) AAS
Math.max()
Math.min()
131: ◆hMJAPH9PWA 03/01/14 10:29 ID:??? AAS
5.8で標準モジュールに追加されたList::UtilとScalar::Utilは便利なんだけど、
Scalar::Utilは実装のほとんどをList::Utilに頼ってるんだから、
一緒にしてUtilityとでもすればよかったと思う。

>>121
mergeってC++のSTLにあるような関数だと思うけど。

>>129
そうだね、どうせuse Socketしないとまともに使えないんだから、
Socketモジュールに入れても混乱は少ない気がする。
132: 03/01/14 21:29 ID:??? AAS
>>130
Math.mid()はいらんのか?
133: 山崎渉 [(^^)sage] 03/01/15 13:33 ID:??? AAS
(^^)
134: 03/01/27 21:06 ID:??? AAS
Math.ave()
135: 山崎渉 [(^^)] 03/03/13 17:49 ID:??? AAS
(^^)
136: 山崎渉 [(^^)] 03/04/17 12:14 ID:??? AAS
(^^)
137
(1): 山崎渉 [(^^)sage] 03/04/20 06:19 ID:??? AAS
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
138: 山崎渉 [(^^)] 03/05/22 02:20 ID:??? AAS
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
139: 03/05/22 22:45 ID:??? AAS
PHPのurlencode
htmlspecialchrs
nl2br
っていうか、自分でこしらえたけど
140: 03/05/25 07:07 ID:??? AAS
use CGI
141: 山崎渉 [(^^)] 03/05/28 17:10 ID:??? AAS
AA省
142: 山崎 渉 [(^^)] 03/07/15 11:24 ID:??? AAS
AA省
143
(1): 山崎 渉 [(^^)sage] 03/08/02 02:29 ID:??? AAS
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
144: ◆3EsfZv7LPw 03/09/02 16:50 ID:??? AAS
けっとばすぞ〜
145: [age] 04/01/09 07:38 ID:??? AAS
塗る歩禁止!
146
(1): 04/12/21 18:37 ID:Ctl+24VT(1) AAS
配列の要素の最大値や最小値を返す関数とか。

あったっけ。
147: 04/12/22 05:24 ID:??? AAS
今の関数使えたらなんでもいいけど
PHPの真似だけはしてほしくないね
148: 04/12/24 19:51 ID:??? AAS
>>146
List::Util
でいいじゃん。
149
(2): 04/12/28 23:22 ID:??? AAS
どんな改行コードでもchompしてくれる関数。
・・・ってか、自作した。
150
(1): 05/01/01 22:52 ID:??? AAS
>>149
そんな関数いらね
151
(1): 05/01/02 20:00 ID:??? AAS
>>150
漏れの場合、なければ仕事にならん・・・。
152
(1): 05/01/02 23:43 ID:??? AAS
>>151
いらないと言ったのは
わざわざPerl側で用意するほどの関数ではないという意味だ
153
(1): 05/01/03 13:01 ID:??? AAS
>>152
なるほど
確かに簡単な処理で何とかなるが、速度面が心配でな・・・。
chompのリプレースって事ならあってもイイと思ったんだが、どうよ。
154: 05/01/05 09:38 ID:??? AAS
>>153
確かに今使ってるのよりも処理が速くなればそれに越したことはないな
ただPerl側であまり用意すると便利な反面、コードの理解力を落とすから
そのバランスだよね
155: 05/01/05 19:07 ID:??? AAS
select関数をどうにかしてほしい
156: 2005/07/20(水)19:33 ID:JCdrAQ5o(1) AAS
>>118
sub merge {}
157: 2005/07/25(月)15:46 ID:??? AAS
sub make_money {
  my $chobitto = shift;
  my $gossori = $chobitto ** 1000000;
  return $gossori;
}

一番の問題はどうやって関数にお金を渡すかだ。
158: 2005/07/25(月)20:28 ID:??? AAS
おっさん
159: 2005/07/25(月)22:38 ID:63FLM844(1) AAS
夜のおかずになってくれる関数。
160: 2005/07/28(木)02:53 ID:??? AAS
新しく標準で欲しい関数は無いけど、
新しく標準で欲しいクラス、パッケージは沢山ある。
161
(1): 2005/07/28(木)15:30 ID:??? AAS
標準で欲しい関数は無いけど、モジュールに追い出してほしい関数なら沢山ある。

ソケット・ネットワーク関連(どうせuse Socketしないとまともに使えない)
get* set* 系(getpwentなど。Windowsじゃ意味ねー。こういうものこそモジュールの仕事だろ)
フォーマット関連(おかげでwrite()が無駄に予約語に…)
セマフォ関連(これもモジュールで対応してくれ)

このくらい削ればプロセスサイズも大分小さくなって起動が早くなりそうだ。
162
(4): 2005/10/11(火)04:25 ID:hXdkdtTb(1) AAS
Shift_JIS で書かれた文字列を

chomp($_ = <<'END');
こちょ♪こちょ♪
END

とせずに済む関数
163: 2005/10/12(水)02:12 ID:??? AAS
>>162
それsjisじゃなくてWindowsの仕様だぞ・・・
164: 2005/10/12(水)02:47 ID:??? AAS
>>162
できましたー。

use encoding qw(shiftjis);

# え、これと違う?
165: 2005/10/12(水)08:19 ID:??? AAS
次期PHPってParrot採用との噂は本当なん?
166: 2005/10/12(水)17:07 ID:??? AAS
その噂ってparrotが2002頃に出るって言われてた頃のだよね。
167: 2005/12/19(月)02:00 ID:??? AAS
暗号化復号化
168: 2008/01/23(水)19:13 ID:S4Tcgs5g(1) AAS
もはや2年前の記事か・・・
169: 2008/10/14(火)14:31 ID:??? AAS
elsifがelseifに!
・・・なったら泣くな
170: 2008/12/29(月)02:00 ID:??? AAS
わかりやすい変数名をつけてくれる関数が切実に欲しいです><
171
(1): 2009/02/19(木)01:22 ID:??? AAS
組み込み関数をオーバーライドする関数
特にprintとか普通できないやつ

モジュールuseしたら勝手にポッポアップウィンドウが開くように
ヘッダーを書き換えたい
172: 2009/02/19(木)14:25 ID:??? AAS
printは出来なくても
STDOUTは変えれるし
出力先も変えれる
173: 2009/06/13(土)05:00 ID:??? AAS
>>171
> 特にprintとか普通できないやつ
>
> モジュールuseしたら勝手にポッポアップウィンドウが開くように
> ヘッダーを書き換えたい

# perl -MPrintToMsgBox -e "print qq(hello)"

# PrintToMsgBox.pm
package PrintToMsgBox;

use Filter::Simple;
FILTER_ONLY code => sub { s/\b(?<!CORE::)print\b/use Win32; Win32::MsgBox/g };

1;
174: 2009/12/06(日)08:37 ID:ev9aXePe(1) AAS
>>161
つuse POSIX;
つuse Moose;
つCoro;

4年も経つとうわ言も現実になるのね。
175
(2): 2009/12/23(水)23:53 ID:scWrjl+i(1) AAS
>>162

関数はないけど、Sjis.pm を使う手がある。
176: 2009/12/24(木)05:31 ID:??? AAS
>>175
>>162はどういう意味?
177
(1): 175 2009/12/27(日)15:55 ID:+zTA95HS(1) AAS
分解すると

$_ = <<'END';
こちょ♪こちょ♪ 【\n】
END
chomp($_);

になる。

$_ = <<'END' とすれば、シフトJISの第2バイトに \x5c が使われ
ている場合でも変数に無事代入することができるが、副作用として
余分な改行コードが入ってしまうので chomp で取り除く。

でも今は昔。Sjis.pm がそれをやってくれる。

ありがたい時代だ。
178: 2009/12/27(日)16:36 ID:??? AAS
>>177
なるほど、そういうことか。
?
179
(2): 2010/01/01(金)00:56 ID:ErV6JCho(1) AAS
素数判定関数
180: 2010/01/26(火)21:18 ID:kYFNuHJ9(1) AAS
>>179

sub is_prime_number {
  if($_[0] =~ /^(2|3|5|7|11|13|17|19|23|29|31|37|41|43|47|53|59|61|67|71|73|79|83|89|97)$/){
    return 1;
  }
  return 0;
}

# 判定する素数を増やしたい場合は正規表現の中に追加します
181: 2010/01/26(火)21:38 ID:??? AAS
SJISやJISのURLエンコード

SJISやJIS、UTF-8のMIMEエンコード

文字列がどのコードか自動判定する関数

eメールのBODYに添付ファイルを埋め込んで返してくれる関数
182: 2010/01/27(水)22:02 ID:??? AAS
エンベデッドSQL
183: 2010/01/29(金)02:05 ID:5qb50s68(1) AAS
# 改良しました
sub is_prime_number {
  return grep /^$_[0]$/, <DATA>;
}
1;
__DATA__
2
3
5
7
184
(1): 2010/03/04(木)18:56 ID:Dn/1ULzG(1) AAS
>>179ですが

却下
そもそも関数じゃないし
185: 2010/03/04(木)19:47 ID:??? AAS
sub is_prim{ $_[0] == 1 ? () : (1 x $_[0]) !~ /^(11+)\1+$/ ;}
186: 2010/03/18(木)02:14 ID:zgtpXchh(1) AAS
入力は @_
出力は return の値
呼び出し方法は is_prime_number($var)

どうみても関数なわけだが、今日は彼女とデートして
機嫌がいいので許さざるをえない
187: 2010/03/28(日)02:02 ID:??? AAS
>>184

184はどういうものを関数といっているのか知りたい。
素数判定関数じゃなくて構わないから何か関数を
書いて欲しい。

そうでないとこのスレ(タイ)を全うできない。
188
(1): 2010/03/29(月)01:54 ID:??? AAS
例えば、

function abc (x,y,z) {
return x+y+z;
}

というものが関数。
189: 2010/03/31(水)00:06 ID:??? AAS
>>188

節子それ Perl 違う
Javascript や
190: nobody 2010/10/11(月)16:35 ID:??? AAS
# それならば...

prime_number[2] = 1;
prime_number[3] = 1;
prime_number[5] = 1;
prime_number[7] = 1;
function is_prime_number(n) {
  return prime_number[n];
}

# いずれにしても有限の個数しか判定できないけど、
# それはそうとあきらめるしかない
191: 2010/12/21(火)23:45 ID:+uMFqmGh(1) AAS
>>149

ようやく意味が分かった。
おれも自作することになった。
1-
あと 12 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.028s