トップページ⇒php
194コメント47KB

新しくperlで標準で欲しい関数は?

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/12/15 03:41ID:43dxFG56
結局自分で作ればいいんだが、
標準で「これがあれば便利なのに・・・」
と思う関数は、どんなもの?
便宜的に名前をつけて、仕様を説明してみてくれ。
0104nobodyさん02/05/05 19:28ID:???
いっそのこと関数全部モジュールに追い出してしまえ!
0105nobodyさん02/05/05 20:11ID:???
>>104
C言語ライクで良い感じですな。
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ファイルを扱う関数。
任意の項目によるソートとかいろいろ。
0116nobodyさん02/12/11 22:50ID:???
>115
DBD::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は、キーがかぶった場合の仕様を作らなかったから、これでもいいと言える。
勉強になります。
0121nobodyさん03/01/12 02:03ID:qwhpCAH/
marge関数はPerl6で追加を検討しているらしい。
http://allabout.co.jp/computer/cgiperl/closeup/CU20010731A/index_2.htm
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に処理を依頼しているわけですから、
どの言語でやっても遅くなると思いますよ。
012512203/01/12 19:27ID:???
>>124
そうなのですか、、、
うぅ、残念です。
0126ぺるにゃん03/01/12 21:03ID:3H9ULczA
>>123
元質問のひとは、一時的にメモリにギュバーっと展開しちゃうのは
嫌なのではないでしょうか
0127nobodyさん03/01/13 00:18ID:KvjrngEn
Perlはじめたころ println() が欲しかった。
今でも欲すぃ
0128nobodyさん03/01/13 01:32ID:???
php() PHPが使える関数
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モジュールに入れても混乱は少ない気がする。
0132nobodyさん03/01/14 21:29ID:???
>>130
Math.mid()はいらんのか?
0133山崎渉03/01/15 13:33ID:???
(^^)
0134nobodyさん03/01/27 21:06ID:???
Math.ave()

0135山崎渉03/03/13 17:49ID:???
(^^)
0136山崎渉03/04/17 12:14ID:???
(^^)
0137山崎渉03/04/20 06:19ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0138山崎渉03/05/22 02:20ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
0139nobodyさん03/05/22 22:45ID:???
PHPのurlencode
htmlspecialchrs
nl2br
っていうか、自分でこしらえたけど
0140nobodyさん03/05/25 07:07ID:???
use CGI
0141山崎渉03/05/28 17:10ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0142山崎 渉03/07/15 11:24ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0143山崎 渉03/08/02 02:29ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0144 ◆3EsfZv7LPw 03/09/02 16:50ID:???
けっとばすぞ〜
0145nobodyさん04/01/09 07:38ID:???
塗る歩禁止!
0146nobodyさん04/12/21 18:37:46ID:Ctl+24VT
配列の要素の最大値や最小値を返す関数とか。

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

一番の問題はどうやって関数にお金を渡すかだ。
0158nobodyさん2005/07/25(月) 20:28:47ID:???
おっさん
0159nobodyさん2005/07/25(月) 22:38:22ID:63FLM844
夜のおかずになってくれる関数。
0160nobodyさん2005/07/28(木) 02:53:11ID:???
新しく標準で欲しい関数は無いけど、
新しく標準で欲しいクラス、パッケージは沢山ある。

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

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

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

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

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

use encoding qw(shiftjis);

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

モジュールuseしたら勝手にポッポアップウィンドウが開くように
ヘッダーを書き換えたい
0172nobodyさん2009/02/19(木) 14:25:32ID:???
printは出来なくても
STDOUTは変えれるし
出力先も変えれる
0173nobodyさん2009/06/13(土) 05:00:12ID:???
>>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;
0174nobodyさん2009/12/06(日) 08:37:25ID:ev9aXePe
>>161
つuse POSIX;
つuse Moose;
つCoro;

4年も経つとうわ言も現実になるのね。
0175nobodyさん2009/12/23(水) 23:53:26ID:scWrjl+i
>>162

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

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

になる。

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

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

ありがたい時代だ。


0178nobodyさん2009/12/27(日) 16:36:48ID:???
>>177
なるほど、そういうことか。
�d
0179nobodyさん2010/01/01(金) 00:56:50ID:ErV6JCho
素数判定関数
0180nobodyさん2010/01/26(火) 21:18:29ID:kYFNuHJ9
>>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;
}

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

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

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

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

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

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

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

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

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

というものが関数。
0189nobodyさん2010/03/31(水) 00:06:07ID:???
>>188

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

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];
}

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

ようやく意味が分かった。
おれも自作することになった。
0192nobodyさん2010/12/23(木) 01:42:14ID:???
関数名は chommp、できれば標準化してほしい。
0193nobobyさん2011/07/31(日) 15:10:17.22ID:???
perl6eval、なんてな
0194電脳プリオン 忍法帖【Lv=40,xxxPT】(4+0:8) 【22.5m】 2013/02/02(土) 22:46:31.64ID:????PLT(12080)
  ∧_∧
  ( ・∀・)      | | ガガッ
 と    )      | |
   Y /ノ      .人
    / ) .人   <  >_∧∩
  _/し' <  >_∧∩`Д´)/
 (_フ彡 V`Д´)/   / ←>>137
            / ←>>143
■ このスレッドは過去ログ倉庫に格納されています