X



新しくperlで標準で欲しい関数は?
0001名無しさん@お腹いっぱい。
垢版 |
01/12/15 03:41ID:43dxFG56
結局自分で作ればいいんだが、
標準で「これがあれば便利なのに・・・」
と思う関数は、どんなもの?
便宜的に名前をつけて、仕様を説明してみてくれ。
0045
垢版 |
01/12/28 00:08ID:fpyzPwrd
>>43
utf8は嫌か?
0046名無しさん@お腹いっぱい。
垢版 |
01/12/28 01:04ID:P8B6/AoK
[日本語文字列で文字コードを気にせず検索できる]
に一票
0047名無しさん@お腹いっぱい。
垢版 |
01/12/28 07:46ID:WCOesOKQ
>>42
41じゃないけど。
if (
    $a == 1 /* 〜判定 */
    or $a == 2 /* 〜判定 */
)
みたいのがほしい。
004847
垢版 |
01/12/28 07:47ID:???
書いてみたら意味不明だった…これなら今のPerlでできるじゃん。。
↑を一行にまとめてあるような場合の話ね。
0050ダメ男
垢版 |
01/12/29 03:17ID:ZRazpEzQ
文字コード変換専用の関数があればいいかもね。いちいちjcode.plを
呼び出しているCGIが多くてウンザリするから。
まあわたしの場合は1つのサブスティチュートに書き替えているけどね。
0051名無しさん@お腹いっぱい。
垢版 |
01/12/29 03:42ID:vH5mwYOf
画像ファイルの拡大/縮小
くらいだけでもできたらうれしい。
0054名無しさん@お腹いっぱい。
垢版 |
01/12/29 17:12ID:YO8PVCNz
>>51
それはモジュールでやるべきことでしょう。さすがに。

>>49
たしかに欲しい。
0062名無しさん@お腹いっぱい。
垢版 |
01/12/30 03:14ID:???
関数じゃないけど、C言語みたいに、

sub funcname($val1,$val2,...,$valn){...}

こういう風にサブルーティンを書けるようにしてほしい。
もちろん仮引数はローカル変数で。
0063_gunzip
垢版 |
01/12/30 06:27ID:???
>>3
Parrotの構文ツリー形式を吐くパーサを自分で書けばいいよ。
実例としてはparrot/languages/jako辺りのパーサ/コンパイラを見てくれ。

http://dev.perl.org/perl6/architecture
------
The parser will permit you to change its rules.
Rule sets define major languages (Perl, C, Python, Java, etc.)
and you can write new rules to define minor languages
(Perl without $ @ % sigils, Python with curly braces, etc.).
------

>>6
Perl6 RFCでも、スレッドに関して幾つか提案がなされてるけど、
(1, 178, 185ほか)RFC185のような実装になるみたい。
RFC 185: Thread Programming Model
http://dev.perl.org/rfc/185.html

>>14
./Configureの際に指定できるよ。
...最近は設定プログラムにGNU Autoconfを利用した物がほとんどで、
Perlで使っているMetaconfig(by Larry Wall他)は滅多に見かけない...。
(autoconfは大抵質問してこないから楽だけど。)

>>25
Perl6ではXS の代わりに Inline::* 系が標準になるので、
他言語で拡張パッケージを書くのはかなり楽になると思います。

>>41-42 >>47-48
RFC5, 102で提案されているけど、Larryは
http://dev.perl.org/perl6/apocalypse/2 の"Inline Comments for Perl"
で述べているとおり導入に消極的。
その代わりにプラグマinline_commentとかが追加されたりして。
Perl5でcppの使える環境なら-Pオプションで、コンパイル前に
Cプリプロセッサに食わせてやることで実現が可能だけど。

Perl6の"is"オペーレータで同様のことが出来るかも。
if ( test1() is "checking something" && test2() is "眠いな" ) {
    # hogehoge
}
0064_gunzip
垢版 |
01/12/30 06:28ID:???
>>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 それはライブラリのお仕事かなぁ
0065_gunzip@書けるの?
垢版 |
01/12/30 06:30ID:???
>>60
Perl6では可能ですよ。詳しくは
RFC025 http://dev.perl.org/rfc/25.html と、
Apocalypse 3<Operators> の "multiway comparisons" の項を見てね。
http://dev.perl.org/perl6/apocalypse/3

>>62
RFC26 http://dev.perl.org/rfc/26.html で提案され、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)
{
    # なんやかや
}

と書けます。
0066名無しさん@お腹いっぱい。
垢版 |
01/12/30 11:50ID:???
>>65
良くわからんけど、仮引き数は全部constになるのかな
つまり、内部的に実引き数へのポインタが@_で@_へのポインタが
仮引き数になるけど、仮引き数のプロパティはconstantになるとか何とか・・・・
んー、結構良いけど何となく嫌 (^ー^;
Damian 氏はC++ファンなんだろうか・・・
0069名無しさん@お腹いっぱい。
垢版 |
01/12/30 18:00ID:neJVFUng
>>64
げげ、Perl6 で配列要素の参照方法変わるんですか...
0072名無しさん@お腹いっぱい。
垢版 |
02/01/03 15:02ID:2yvOBGYW
本物の匿名型グロブを返すgensym()が欲しい。
いやなんとなく。
0076469
垢版 |
02/04/21 09:11ID:???

コテハンってウザイね。



0077nobodyさん
垢版 |
02/04/21 10:45ID:mSKVAdKd
>>49
%a=(%b,%c);
じゃだめか?
0079nobodyさん
垢版 |
02/04/21 16:47ID:???
>>78
      チャンチャラチャンチャラ      
  (⌒)  /
 (^ @^) -
  (⊃⊂) ヽ

      オッカシー      
  (⌒)  /
 (・ @^) -
○( ⊂) ヽ
0080nobodyさん
垢版 |
02/04/21 17:38ID:???
#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;
}
0081nobodyさん
垢版 |
02/04/21 18:15ID:???
>>80
それは何?
C/C++のコードではないようだし。
008281
垢版 |
02/04/21 18:37ID:???
C++だった。ハズカシ
0083ぺるにゃん
垢版 |
02/04/28 20:10ID: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」が用意されているらしいんですねぇ・・・
さすがにゃ)
0084nobodyさん
垢版 |
02/04/28 22:06ID:???
switch欲しい……
サブルーチンで作ってみようと努力したが構造的に不可能だった鬱
0085_gunzip@訂正歓迎
垢版 |
02/04/28 22:16ID:???
>>83
Exegesesを見る限り、destructive sortがPerl6に取り込まれる可能性はなさそう。

>>84
Perl5では、外部モジュールで。
http://search.cpan.org/search?dist=Switch

Perl6では、givenという名前で組み込まれる予定です。
(switchと命名されなかったのは、C/C++/Javaのswitchとは違うということを際立たせるためだそうで)
http://www.perl.com/pub/a/2002/01/15/apo4.html?page=2#rfc%20022:%20control%20flow:%20builtin%20switch%20statement
用例 http://www.perl.com/lpt/a/2002/04/01/exegesis4.html
欲張りすぎて、ちょっとわかりににくひ。(組み合わせが23通りもあるのかよ...)
0086nobodyさん
垢版 |
02/04/29 11:52ID:5LS+M/ng
うるせーバカ。
初心者は黙ってろ スレのレベルが下がる


0088nobodyさん
垢版 |
02/04/29 12:32ID:5LS+M/ng
>>87
必死だな。誰かさん(大爆笑)
0089nobodyさん
垢版 |
02/04/29 14:52ID:???
>(大爆笑)
ヤフーに帰れ
0090nobodyさん
垢版 |
02/04/29 19:01ID:NmdFgil6
>>89
必死だな。誰かさん(大爆笑)


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





0093nobodyさん
垢版 |
02/04/29 20:07ID:???
>>92
乙武必死だな(藁
0094乙武
垢版 |
02/04/29 21:16ID:???
必死で生きてますが何か?
0095nobodyさん
垢版 |
02/04/29 21:43ID:NmdFgil6
(゚Д゚)ハァ? しねばぁ?
0097not 83
垢版 |
02/04/30 11:53ID: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
0098nobodyさん
垢版 |
02/05/01 04:48ID:HoZj1fyx
標準関数よりも、標準ライブラリを充実させて欲しい
シェルもろくに使えない奴らに「複雑な設定が必要」なんて言われもない
批判を受けるのはもういやだ。
0099nobodyさん
垢版 |
02/05/01 23:31ID:ZTriJMsX
女性の股を開く関数。

もしくは、チョンを殺してくれる関数。
0101nobodyさん
垢版 |
02/05/02 04:25ID:Opu6NMoF
>>97
しんだらぁ?
0102ぺるにゃん
垢版 |
02/05/03 05:12ID:???
>>85

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

>>100
ぜい肉をとるために、getほにゃららっていう network 関連の関数を
モジュールに追い出すべきという意見はどうでしょう。
0103nobodyさん
垢版 |
02/05/03 13:14ID:???
・ネットワーク関連の関数をモジュールに追い出し
・数学関数をモジュールに追い出し
・format writeはイラネーヨ

0104nobodyさん
垢版 |
02/05/05 19:28ID:???
いっそのこと関数全部モジュールに追い出してしまえ!
0106nobodyさん
垢版 |
02/05/06 21:30ID:uN5rTlAV
>>100
痩せすぎているので、少しは太れよってみんなから言われるよ
0107nobodyさん
垢版 |
02/05/07 20:48ID:NQEaYM+J
sage
0108nobodyさん
垢版 |
02/05/08 13:20ID:???
そういうセリフ吐く奴ってoffで合うと大概口だけいかにももててますアピールの
きもい系のヤシなんだよねw
0109nobodyさん
垢版 |
02/05/08 19:53ID:???
/bin/grepを呼ぶのにエスケープの手間がかかるんで
ファイルからgrepする関数が欲しい。
@res = fgrep(/hoge/, /\.log$/,"/var/log/");
みたいな。
0110nobodyさん
垢版 |
02/05/08 20:18ID:???
>>109
それこライブラリの仕事だろ。
それ以前にgrepとfgrepという全く別の関数が存在することも大いに問題だし。
どうしてもというならShell.pmでも使っとけ。

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

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

こんな感じ?
確かにシンプルだ……。
>>49は、キーがかぶった場合の仕様を作らなかったから、これでもいいと言える。
勉強になります。
0122nobodyさん
垢版 |
03/01/12 17:53ID:???
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)
遅すぎ、、、
もっと速くしてくれ。
0123nobodyさん
垢版 |
03/01/12 19:13ID:bGDRedPP
>>49 >書いても3行なんですけどね。
%c = ( %a, %b );

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

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

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

>>129
そうだね、どうせuse Socketしないとまともに使えないんだから、
Socketモジュールに入れても混乱は少ない気がする。
0137山崎渉
垢版 |
03/04/20 06:19ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0138山崎渉
垢版 |
03/05/22 02:20ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
0139nobodyさん
垢版 |
03/05/22 22:45ID:???
PHPのurlencode
htmlspecialchrs
nl2br
っていうか、自分でこしらえたけど
0141山崎渉
垢版 |
03/05/28 17:10ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0142山崎 渉
垢版 |
03/07/15 11:24ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0143山崎 渉
垢版 |
03/08/02 02:29ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
レスを投稿する


ニューススポーツなんでも実況