新しくperlで標準で欲しい関数は?at PHP
新しくperlで標準で欲しい関数は? - 暇つぶし2ch64:_gunzip
01/12/30 06:28
>>43, 50
PerlIO::TextCodecクラスみたいなのが追加されたら便利かも。
(´-`).。oO(以下↓は妄想.....)

*------*
#!/usr/bin/perl6

use IO;

my $in = new IO::TextStream(@ARGV[0]); #Perl6の配列要素参照は@array[index]
my $out = new IO::TextStream(@ARGV[1]);
$in.open("r") or $out.open("w") or die "open() failed";

$*in is chomped; # 入力は自動的に改行を削除
$out.setCodec(PerlIO::TextCodec::euc_JP); # 出力はeuc-jpで、とか

while (!$in.end) {
    my string $line = $in.readline(); # 勝手にunicode文字列に変換して$lineへ

    $out.writeline($line); # $outのコーデックでunicode->euc-jp自動変換

    $out << codec("euc-jp") << $line << endl; # まにぴゅれーたすたいる

    print $out: $line.locale8bit(); #ロケールに応じたエンコーディングで出力

    my $codec = new PerlIO::TextCodec("shiftjis");
    print $out: $codec.fromUnicode($line);
}

$in.close();
$out.close();
*-----*

>>49 それは無いかなぁ
>>51-52 それはライブラリのお仕事かなぁ

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

>>62
RFC26 URLリンク(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
>>65
良くわからんけど、仮引き数は全部constになるのかな
つまり、内部的に実引き数へのポインタが@_で@_へのポインタが
仮引き数になるけど、仮引き数のプロパティはconstantになるとか何とか・・・・
んー、結構良いけど何となく嫌 (^ー^;
Damian 氏はC++ファンなんだろうか・・・

67:名無しさん@お腹いっぱい。
01/12/30 16:53
>>64
Perl5でも同じことが出来ませんか。

68:名無しさん@お腹いっぱい。
01/12/30 16:58
できる。それぐらいは分かってるだろ。

69:名無しさん@お腹いっぱい。
01/12/30 18:00 neJVFUng
>>64
げげ、Perl6 で配列要素の参照方法変わるんですか...

70:名無しさん@お腹いっぱい。
01/12/30 22:41
標準でってことですか。失敬。

71:1=東京kitty
01/12/30 23:25
結構続いてるな(ぷっ

72:名無しさん@お腹いっぱい。
02/01/03 15:02 2yvOBGYW
本物の匿名型グロブを返すgensym()が欲しい。
いやなんとなく。

73:名無しさん@お腹いっぱい。
02/01/03 16:00
もうすこし精度の良い乱数が欲しい。

74:名無しさん@お腹いっぱい。
02/01/03 19:37
>>73
URLリンク(www.math.keio.ac.jp)
なんかがよさげですね。。C,C++の標準関数になればみんな幸せになりそうですが・・

75:名無しさん@お腹いっぱい。
02/01/17 02:17
あげ

76:469
02/04/21 09:11

コテハンってウザイね。





77:nobodyさん
02/04/21 10:45 mSKVAdKd
>>49
%a=(%b,%c);
じゃだめか?

78:nobodyさん
02/04/21 16:42

コテハンってウザイね。








79:nobodyさん
02/04/21 16:47
>>78
      チャンチャラチャンチャラ      
  (⌒)  /
 (^ @^) -
  (⊃⊂) ヽ

      オッカシー      
  (⌒)  /
 (・ @^) -
○( ⊂) ヽ

80:nobodyさん
02/04/21 17:38
#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:nobodyさん
02/04/21 18:15
>>80
それは何?
C/C++のコードではないようだし。


82:81
02/04/21 18:37
C++だった。ハズカシ

83:ぺるにゃん
02/04/28 20:10 gfGqCBjT
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:nobodyさん
02/04/28 22:06
switch欲しい……
サブルーチンで作ってみようと努力したが構造的に不可能だった鬱

85:_gunzip@訂正歓迎
02/04/28 22:16
>>83
Exegesesを見る限り、destructive sortがPerl6に取り込まれる可能性はなさそう。

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

Perl6では、givenという名前で組み込まれる予定です。
(switchと命名されなかったのは、C/C++/Javaのswitchとは違うということを際立たせるためだそうで)
URLリンク(www.perl.com)
用例 URLリンク(www.perl.com)
欲張りすぎて、ちょっとわかりににくひ。(組み合わせが23通りもあるのかよ...)

86:nobodyさん
02/04/29 11:52 5LS+M/ng
うるせーバカ。
初心者は黙ってろ スレのレベルが下がる




87:nobodyさん
02/04/29 12:30
>>86←典型例

88:nobodyさん
02/04/29 12:32 5LS+M/ng
>>87
必死だな。誰かさん(大爆笑)

89:nobodyさん
02/04/29 14:52
>(大爆笑)
ヤフーに帰れ

90:nobodyさん
02/04/29 19:01 NmdFgil6
>>89
必死だな。誰かさん(大爆笑)




91:ロボ鉄 ◆MGTy6iYI
02/04/29 19:09
>>90
必死だな。誰かさん(大爆笑)


92:nobodyさん
02/04/29 19:17 NmdFgil6
>>91
必死だな。誰かさん(大爆笑)







93:nobodyさん
02/04/29 20:07
>>92
乙武必死だな(藁

94:乙武
02/04/29 21:16
必死で生きてますが何か?

95:nobodyさん
02/04/29 21:43 NmdFgil6
(゚Д゚)ハァ? しねばぁ?


96:あぼーん
あぼーん
あぼーん

97:not 83
02/04/30 11:53 9z6SUNiy
>>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:nobodyさん
02/05/01 04:48 HoZj1fyx
標準関数よりも、標準ライブラリを充実させて欲しい
シェルもろくに使えない奴らに「複雑な設定が必要」なんて言われもない
批判を受けるのはもういやだ。

99:nobodyさん
02/05/01 23:31 ZTriJMsX
女性の股を開く関数。

もしくは、チョンを殺してくれる関数。

100:nobodyさん
02/05/01 23:34
>>98
これ以上ブクブク太らせて楽しい?

101:nobodyさん
02/05/02 04:25 Opu6NMoF
>>97
しんだらぁ?


102:ぺるにゃん
02/05/03 05:12
>>85

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

>>100
ぜい肉をとるために、getほにゃららっていう network 関連の関数を
モジュールに追い出すべきという意見はどうでしょう。

103:nobodyさん
02/05/03 13:14
・ネットワーク関連の関数をモジュールに追い出し
・数学関数をモジュールに追い出し
・format writeはイラネーヨ



104:nobodyさん
02/05/05 19:28
いっそのこと関数全部モジュールに追い出してしまえ!

105:nobodyさん
02/05/05 20:11
>>104
C言語ライクで良い感じですな。

106:nobodyさん
02/05/06 21:30 uN5rTlAV
>>100
痩せすぎているので、少しは太れよってみんなから言われるよ

107:nobodyさん
02/05/07 20:48 NQEaYM+J
sage

108:nobodyさん
02/05/08 13:20
そういうセリフ吐く奴ってoffで合うと大概口だけいかにももててますアピールの
きもい系のヤシなんだよねw

109:nobodyさん
02/05/08 19:53
/bin/grepを呼ぶのにエスケープの手間がかかるんで
ファイルからgrepする関数が欲しい。
@res = fgrep(/hoge/, /\.log$/,"/var/log/");
みたいな。

110:nobodyさん
02/05/08 20:18
>>109
それこライブラリの仕事だろ。
それ以前にgrepとfgrepという全く別の関数が存在することも大いに問題だし。
どうしてもというならShell.pmでも使っとけ。

#!/bin/perl
use Shell qw(fgrep);
$ENV{PATH} = '/bin';
@res = fgrep 'hoge', '/var/log';

111:nobodyさん
02/06/24 20:29
今は Time::Local があるからまあ許すが
その昔なぜ localtime が標準で実装されてて timelocal がなかったのか不思議だ。

112:nobodyさん
02/11/25 09:32 ftkefb9E
Thread.pmがActivePerlでまともに使えるようになってほしい。
Perl5.8.0ではちゃんと動くのか?

113:nobodyさん
02/11/25 20:58
mmapを標準関数、もしくはcore moduleでおねがいぃ

114:nobodyさん
02/11/27 00:59
god("jpeg画像を120*120にリサイズする");
god("テキトーなデザインを出力する");
god("このソースが人に読まれない");

っていうのが欲しいです。


115:nobodyさん
02/12/11 10:58 00jmHk8S
CSVファイルを扱う関数。
任意の項目によるソートとかいろいろ。

116:nobodyさん
02/12/11 22:50
>115
DBD::CSV使えば?

117:nobodyさん
02/12/12 07:00
>>116
DBIモジュールが標準モジュールになったら使うよ。

118:nobodyさん
02/12/15 16:09
>>49
俺様の力作使ってはくれまいか?
sub merge
{
return(@_);
}

119:nobodyさん
02/12/16 10:19 YT4sQXgY
↑すごいYO!

120:nobodyさん
02/12/16 23:14
>>118
usage:
%c = merge ( %a, %b );

こんな感じ?
確かにシンプルだ……。
>>49は、キーがかぶった場合の仕様を作らなかったから、これでもいいと言える。
勉強になります。

121:nobodyさん
03/01/12 02:03 qwhpCAH/
marge関数はPerl6で追加を検討しているらしい。
URLリンク(allabout.co.jp)


122:nobodyさん
03/01/12 17:53
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:nobodyさん
03/01/12 19:13 bGDRedPP
>>49 >書いても3行なんですけどね。
%c = ( %a, %b );

どこらへんに三行要るんだろう?

124:ぺるにゃん
03/01/12 19:22 3H9ULczA
>>122
これは、
OSに処理を依頼しているわけですから、
どの言語でやっても遅くなると思いますよ。

125:122
03/01/12 19:27
>>124
そうなのですか、、、
うぅ、残念です。

126:ぺるにゃん
03/01/12 21:03 3H9ULczA
>>123
元質問のひとは、一時的にメモリにギュバーっと展開しちゃうのは
嫌なのではないでしょうか

127:nobodyさん
03/01/13 00:18 KvjrngEn
Perlはじめたころ println() が欲しかった。
今でも欲すぃ


128:nobodyさん
03/01/13 01:32
php() PHPが使える関数

129:nobodyさん
03/01/13 02:03 /r5THG1/
ていうか

ネットワーク関連のいらない関数ステロ!


130:nobodyさん
03/01/13 05:39 9OqkABMV
Math.max()
Math.min()

131: ◆hMJAPH9PWA
03/01/14 10:29
5.8で標準モジュールに追加されたList::UtilとScalar::Utilは便利なんだけど、
Scalar::Utilは実装のほとんどをList::Utilに頼ってるんだから、
一緒にしてUtilityとでもすればよかったと思う。

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

>>129
そうだね、どうせuse Socketしないとまともに使えないんだから、
Socketモジュールに入れても混乱は少ない気がする。

132:nobodyさん
03/01/14 21:29
>>130
Math.mid()はいらんのか?

133:山崎渉
03/01/15 13:33
(^^)

134:nobodyさん
03/01/27 21:06
Math.ave()



135:山崎渉
03/03/13 17:49
(^^)

136:山崎渉
03/04/17 12:14
(^^)

137:山崎渉
03/04/20 06:19
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

138:山崎渉
03/05/22 02:20
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

139:nobodyさん
03/05/22 22:45
PHPのurlencode
htmlspecialchrs
nl2br
っていうか、自分でこしらえたけど

140:nobodyさん
03/05/25 07:07
use CGI

141:山崎渉
03/05/28 17:10
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎―◎                      山崎渉

142:山崎 渉
03/07/15 11:24

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

143:山崎 渉
03/08/02 02:29
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

144: ◆3EsfZv7LPw
03/09/02 16:50
けっとばすぞ~

145:nobodyさん
04/01/09 07:38
塗る歩禁止!

146:nobodyさん
04/12/21 18:37:46 Ctl+24VT
配列の要素の最大値や最小値を返す関数とか。

あったっけ。

147:nobodyさん
04/12/22 05:24:08
今の関数使えたらなんでもいいけど
PHPの真似だけはしてほしくないね

148:nobodyさん
04/12/24 19:51:15
>>146
List::Util
でいいじゃん。

149:nobodyさん
04/12/28 23:22:04
どんな改行コードでもchompしてくれる関数。
・・・ってか、自作した。

150:nobodyさん
05/01/01 22:52:21
>>149
そんな関数いらね

151:nobodyさん
05/01/02 20:00:36
>>150
漏れの場合、なければ仕事にならん・・・。

152:nobodyさん
05/01/02 23:43:57
>>151
いらないと言ったのは
わざわざPerl側で用意するほどの関数ではないという意味だ

153:nobodyさん
05/01/03 13:01:46
>>152
なるほど
確かに簡単な処理で何とかなるが、速度面が心配でな・・・。
chompのリプレースって事ならあってもイイと思ったんだが、どうよ。

154:nobodyさん
05/01/05 09:38:00
>>153
確かに今使ってるのよりも処理が速くなればそれに越したことはないな
ただPerl側であまり用意すると便利な反面、コードの理解力を落とすから
そのバランスだよね

155:nobodyさん
05/01/05 19:07:56
select関数をどうにかしてほしい

156:nobodyさん
05/07/20 19:33:05 JCdrAQ5o
>>118
sub merge {}

157:nobodyさん
05/07/25 15:46:43
sub make_money {
  my $chobitto = shift;
  my $gossori = $chobitto ** 1000000;
  return $gossori;
}

一番の問題はどうやって関数にお金を渡すかだ。

158:nobodyさん
05/07/25 20:28:47
おっさん

159:nobodyさん
05/07/25 22:38:22 63FLM844
夜のおかずになってくれる関数。

160:nobodyさん
05/07/28 02:53:11
新しく標準で欲しい関数は無いけど、
新しく標準で欲しいクラス、パッケージは沢山ある。



161:nobodyさん
05/07/28 15:30:00
標準で欲しい関数は無いけど、モジュールに追い出してほしい関数なら沢山ある。

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

このくらい削ればプロセスサイズも大分小さくなって起動が早くなりそうだ。

162:nobodyさん
05/10/11 04:25:38 hXdkdtTb
Shift_JIS で書かれた文字列を

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

とせずに済む関数


163:nobodyさん
05/10/12 02:12:56
>>162
それsjisじゃなくてWindowsの仕様だぞ・・・

164:nobodyさん
05/10/12 02:47:54
>>162
できましたー。

use encoding qw(shiftjis);

# え、これと違う?

165:nobodyさん
05/10/12 08:19:58
次期PHPってParrot採用との噂は本当なん?

166:nobodyさん
05/10/12 17:07:16
その噂ってparrotが2002頃に出るって言われてた頃のだよね。

167:nobodyさん
05/12/19 02:00:37
暗号化復号化

168:nobodyさん
08/01/23 19:13:31 S4Tcgs5g
もはや2年前の記事か・・・


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch