新しくperlで標準で欲しい関数は?
結局自分で作ればいいんだが、 標準で「これがあれば便利なのに・・・」 と思う関数は、どんなもの? 便宜的に名前をつけて、仕様を説明してみてくれ。 atexit((void)&undef(>>1 ); kill('>>1 ')||die('1は氏にました!'); if(>>1 ){ while(>>1 ) strtok(>>1 ,"関節"); } unlink(>>1 ); $@% ← こう言うの使わずに書かせてくれるプラグマ(w 他言語のmaxとかminにあたるのって標準でついてますか? なんかリファレンスみても載ってないんだけど。 オレのしゃべった事をそのままプログラムにしてくれる関数。 >4 maxって数学関数のmax?か確かボコるにも文字列返すのが有ったような どっちにしろsortでやれ。 >>6 > 複数プログラムの同時実行が欲しい forkとかsystemでいいのでは? というか、Perl6 の仕様はフリーズされてるんじゃないの? >>9 system関数はプロセスの終了待ちをするんじゃないかな。 同時実行ならやっぱforkだね。 あと、今出てるソースは、コンパイルする時に、 MultiThread対応にするかのconfirmがあったようなきがする。 >>16 だから、どういった点が? ちなみに 7 != 15なんだが。 違う、13 != 16だが、俺はPerl7に突っ込んだんです。 多分13も、つーか煽ってごめんなさい 逝って来る うわ、勘違いしていました。 こちらこそ申し訳ない。 13 = 15じゃないや... 15 = 17 だった...。ごめんなさい ム板は殺伐としちゃってるからこっちの方が居心地良いね まともなコンパイル機能じゃない? 今の perlcc がまともじゃないかはおいといて。 mod_perl と ふつーの perl cgi との差を縮めてくれ。 >23 uniqってハッシュ有ればいいと思うが、何か凄い機能あるの? >24 まともってのがどのレベルを指すのか分からんがバイトコードは 昔からまともだろ(と言うかまともじゃないと動かないし・・) inlineCで出来るネイティブも勿論まともだぞ つーか実行前の状態でメモリに展開されてるコードには絶対追いつけない(w 俺はsetjmpが欲しいな :-) >>25 perldoc POSIX すると、 setjmp の実装には eval {}, longjmp の実装には die を使えと書いてある。 が、どう使えばいいかわかんない。 なるほど、でもatexitの為に_END_が追加されたみたいに 気軽に使いたいのがホントのところ (^^; 因みに、どっかで拾ったタイムアウトのサンプルはこんなのだった $SIG{ALRM} = _TimeoutEval; alarm(3); eval{# 処理;}; alarm(0); if ($@){print "Process was timeout \n"} sub _TimeoutEval{die;} >>29 BEGIN に対応するブロックじゃないの? 終了時にかならず実行するみたいな。 使ったことないが... >>32 理解した。 __END__のタイポにしちゃ意味不明だしな…とか思って、なんだか分からなかった。 がんがんスレッド使えるようにしてほしいなぁ。 なんかもう、言語仕様的に。 Java の synchronized を凌駕するかのような使い心地の。 って、今現在Perlでスレッド使うときってどうするんだっけ? 使ったことないのになにいってんだ(゚Д゚)ゴルァとか言わないで... 使ったことないのになにいってんだ(゚Д゚)ゴルァ 今のところポータビリティのあるスレッドの使い方は無いんじゃないの? 多分。 Perlのバージョン違うと微妙に違うようだし。 うるせーバカ。 初心者は黙ってろ スレのレベルが下がる Perl6 で実装される新しい機能のリストとかってもうどっか出てます? >>39 英語なら結構そろってるっぽい perl.comとか見てみたら? 俺は英語読めんけど。 関数って訳じゃないけど、範囲指定できるコメントアウトが欲しい。 Cでいうところの/* */のような。 日本語文字列で文字コードを気にせず検索できる jindex($str) >>43 そういうのはjperlの方で実装してくれればいいや。 [日本語文字列で文字コードを気にせず検索できる] に一票 >>42 41じゃないけど。 if ( $a == 1 /* 〜判定 */ or $a == 2 /* 〜判定 */ ) みたいのがほしい。 書いてみたら意味不明だった…これなら今のPerlでできるじゃん。。 ↑を一行にまとめてあるような場合の話ね。 hashをマージする関数は欲しいなぁ。書いても3行なんですけどね。 文字コード変換専用の関数があればいいかもね。いちいちjcode.plを 呼び出しているCGIが多くてウンザリするから。 まあわたしの場合は1つのサブスティチュートに書き替えているけどね。 画像ファイルの拡大/縮小 くらいだけでもできたらうれしい。 >>51 それはモジュールでやるべきことでしょう。さすがに。 >>49 たしかに欲しい。 "Hello,world!!\n"を印字する関数。書いても1行なんですけどね。 >>55 あらゆる言語で車輪の再開発がなされる部分だしね。 ビルトインクラスPerlWorldにジョークでHelloメソッドがあったら笑う。 こういう事したい if $sita < $naka < $ue; 関数じゃないけど、C言語みたいに、 sub funcname($val1,$val2,...,$valn){...} こういう風にサブルーティンを書けるようにしてほしい。 もちろん仮引数はローカル変数で。 >>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 } >>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 それはライブラリのお仕事かなぁ >>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) { # なんやかや } と書けます。 >>65 良くわからんけど、仮引き数は全部constになるのかな つまり、内部的に実引き数へのポインタが@_で@_へのポインタが 仮引き数になるけど、仮引き数のプロパティはconstantになるとか何とか・・・・ んー、結構良いけど何となく嫌 (^ー^; Damian 氏はC++ファンなんだろうか・・・ >>64 げげ、Perl6 で配列要素の参照方法変わるんですか... 本物の匿名型グロブを返すgensym()が欲しい。 いやなんとなく。 >>73 http://www.math.keio.ac.jp/ ~matumoto/mt.html なんかがよさげですね。。C,C++の標準関数になればみんな幸せになりそうですが・・ >>78 チャンチャラチャンチャラ (⌒) / (^ @^) - (⊃⊂) ヽ オッカシー (⌒) / (・ @^) - ○( ⊂) ヽ #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; } >>80 それは何? C/C++のコードではないようだし。 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」が用意されているらしいんですねぇ・・・ さすがにゃ) switch欲しい…… サブルーチンで作ってみようと努力したが構造的に不可能だった鬱 うるせーバカ。 初心者は黙ってろ スレのレベルが下がる >>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 標準関数よりも、標準ライブラリを充実させて欲しい シェルもろくに使えない奴らに「複雑な設定が必要」なんて言われもない 批判を受けるのはもういやだ。 女性の股を開く関数。 もしくは、チョンを殺してくれる関数。 >>85 そうにゃんだ。残念。 でも明快なお答えをありがとう。 >>100 ぜい肉をとるために、getほにゃららっていう network 関連の関数を モジュールに追い出すべきという意見はどうでしょう。 ・ネットワーク関連の関数をモジュールに追い出し ・数学関数をモジュールに追い出し ・format writeはイラネーヨ いっそのこと関数全部モジュールに追い出してしまえ! >>100 痩せすぎているので、少しは太れよってみんなから言われるよ そういうセリフ吐く奴ってoffで合うと大概口だけいかにももててますアピールの きもい系のヤシなんだよねw /bin/grepを呼ぶのにエスケープの手間がかかるんで ファイルからgrepする関数が欲しい。 @res = fgrep(/hoge/, /\.log$/,"/var/log/"); みたいな。 >>109 それこライブラリの仕事だろ。 それ以前にgrepとfgrepという全く別の関数が存在することも大いに問題だし。 どうしてもというならShell.pmでも使っとけ。 #!/bin/perl use Shell qw(fgrep); $ENV{PATH} = '/bin'; @res = fgrep 'hoge', '/var/log'; 今は Time::Local があるからまあ許すが その昔なぜ localtime が標準で実装されてて timelocal がなかったのか不思議だ。 Thread.pmがActivePerlでまともに使えるようになってほしい。 Perl5.8.0ではちゃんと動くのか? mmapを標準関数、もしくはcore moduleでおねがいぃ god("jpeg画像を120*120にリサイズする"); god("テキトーなデザインを出力する"); god("このソースが人に読まれない"); っていうのが欲しいです。 CSVファイルを扱う関数。 任意の項目によるソートとかいろいろ。 >>116 DBIモジュールが標準モジュールになったら使うよ。 >>49 俺様の力作使ってはくれまいか? sub merge { return(@_); } >>118 usage: %c = merge ( %a, %b ); こんな感じ? 確かにシンプルだ……。 >>49 は、キーがかぶった場合の仕様を作らなかったから、これでもいいと言える。 勉強になります。 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) 遅すぎ、、、 もっと速くしてくれ。 >>49 >書いても3行なんですけどね。 %c = ( %a, %b ); どこらへんに三行要るんだろう? >>122 これは、 OSに処理を依頼しているわけですから、 どの言語でやっても遅くなると思いますよ。 >>124 そうなのですか、、、 うぅ、残念です。 >>123 元質問のひとは、一時的にメモリにギュバーっと展開しちゃうのは 嫌なのではないでしょうか Perlはじめたころ println() が欲しかった。 今でも欲すぃ 5.8で標準モジュールに追加されたList::UtilとScalar::Utilは便利なんだけど、 Scalar::Utilは実装のほとんどをList::Utilに頼ってるんだから、 一緒にしてUtilityとでもすればよかったと思う。 >>121 mergeってC++のSTLにあるような関数だと思うけど。 >>129 そうだね、どうせuse Socketしないとまともに使えないんだから、 Socketモジュールに入れても混乱は少ない気がする。 ━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━― PHPのurlencode htmlspecialchrs nl2br っていうか、自分でこしらえたけど ∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉 __∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄ 配列の要素の最大値や最小値を返す関数とか。 あったっけ。 今の関数使えたらなんでもいいけど PHPの真似だけはしてほしくないね どんな改行コードでもchompしてくれる関数。 ・・・ってか、自作した。 >>150 漏れの場合、なければ仕事にならん・・・。 >>151 いらないと言ったのは わざわざPerl側で用意するほどの関数ではないという意味だ >>152 なるほど 確かに簡単な処理で何とかなるが、速度面が心配でな・・・。 chompのリプレースって事ならあってもイイと思ったんだが、どうよ。 >>153 確かに今使ってるのよりも処理が速くなればそれに越したことはないな ただPerl側であまり用意すると便利な反面、コードの理解力を落とすから そのバランスだよね sub make_money { my $chobitto = shift; my $gossori = $chobitto ** 1000000; return $gossori; } 一番の問題はどうやって関数にお金を渡すかだ。 新しく標準で欲しい関数は無いけど、 新しく標準で欲しいクラス、パッケージは沢山ある。 標準で欲しい関数は無いけど、モジュールに追い出してほしい関数なら沢山ある。 ソケット・ネットワーク関連(どうせuse Socketしないとまともに使えない) get* set* 系(getpwentなど。Windowsじゃ意味ねー。こういうものこそモジュールの仕事だろ) フォーマット関連(おかげでwrite()が無駄に予約語に…) セマフォ関連(これもモジュールで対応してくれ) このくらい削ればプロセスサイズも大分小さくなって起動が早くなりそうだ。 Shift_JIS で書かれた文字列を chomp($_ = <<'END'); こちょ♪こちょ♪ END とせずに済む関数 >>162 それsjisじゃなくてWindowsの仕様だぞ・・・ >>162 できましたー。 use encoding qw(shiftjis); # え、これと違う? その噂ってparrotが2002頃に出るって言われてた頃のだよね。 elsifがelseifに! ・・・なったら泣くな わかりやすい変数名をつけてくれる関数が切実に欲しいです>< 組み込み関数をオーバーライドする関数 特にprintとか普通できないやつ モジュールuseしたら勝手にポッポアップウィンドウが開くように ヘッダーを書き換えたい printは出来なくても STDOUTは変えれるし 出力先も変えれる >>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; >>161 つuse POSIX; つuse Moose; つCoro; 4年も経つとうわ言も現実になるのね。 >>162 関数はないけど、Sjis.pm を使う手がある。 分解すると $_ = <<'END'; こちょ♪こちょ♪ 【\n】 END chomp($_); になる。 $_ = <<'END' とすれば、シフトJISの第2バイトに \x5c が使われ ている場合でも変数に無事代入することができるが、副作用として 余分な改行コードが入ってしまうので chomp で取り除く。 でも今は昔。Sjis.pm がそれをやってくれる。 ありがたい時代だ。 >>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; } # 判定する素数を増やしたい場合は正規表現の中に追加します SJISやJISのURLエンコード SJISやJIS、UTF-8のMIMEエンコード 文字列がどのコードか自動判定する関数 eメールのBODYに添付ファイルを埋め込んで返してくれる関数 # 改良しました sub is_prime_number { return grep /^$_[0]$/, <DATA>; } 1; __DATA__ 2 3 5 7 sub is_prim{ $_[0] == 1 ? () : (1 x $_[0]) !~ /^(11+)\1+$/ ;} 入力は @_ 出力は return の値 呼び出し方法は is_prime_number($var) どうみても関数なわけだが、今日は彼女とデートして 機嫌がいいので許さざるをえない >>184 184はどういうものを関数といっているのか知りたい。 素数判定関数じゃなくて構わないから何か関数を 書いて欲しい。 そうでないとこのスレ(タイ)を全うできない。 例えば、 function abc (x,y,z) { return x+y+z; } というものが関数。 >>188 節子それ Perl 違う Javascript や # それならば... 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]; } # いずれにしても有限の個数しか判定できないけど、 # それはそうとあきらめるしかない >>149 ようやく意味が分かった。 おれも自作することになった。 関数名は chommp、できれば標準化してほしい。 ∧_∧ ( ・∀・) | | ガガッ と ) | | Y /ノ .人 / ) .人 < >_∧∩ _/し' < >_∧∩`Д´)/ (_フ彡 V`Д´)/ / ←>>137 / ←>>143 誰でも簡単にネットで稼げる方法など 参考までに、 ⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。 グーグル検索⇒『半藤のブブイウイウレレ』 Y309HZ08T6 プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。 6K8QD 宇宙建築の開発を目的に3年前に設立された「オービタル・アセンブリ(Orbital Assembly)」社はこのほど、人工重力で運用される人類初の宇宙ホテル「ボイジャー・ステーション(Voyager Station)」の建設を2025年から開始すると明らかにした。 1月29日に行われたオンライン記者会見で同社は、2025年に地球低軌道で宇宙ホテル「ボイジャー・ステーション」建設を開始し、早ければ2027年に稼働する可能性があることを明かした。 「ボイジャー・ステーション」は90分ごとに地球を一周し、リングを回転させることにより内部に月面と同程度の重力が発生させるという。 実現すれば、同ホテルは宇宙空間で最大の人工建造物となり、最大400人を収容できる設備が完備されることになる。さらに内部には客室に加え、レストランやバー、ジムに図書館、コンサート会場など様々な施設が揃う。 【ブリュッセル=畠山朋子】ロシアのウクライナ侵攻を受け、米国と欧州連合(EU)、英国などは26日、共同声明を発表し、ロシアの複数の銀行を国際銀行間通信協会(SWIFT、本部・ベルギー)から排除する方針を示した。数日中に発動する。 SWIFTは、約200か国・地域の1万社超の金融機関に国際送金のネットワークを提供しており、排除によって、ロシアは輸出している原油や天然ガスの代金の回収など、他国との決裁が難しくなる。共同声明では、「ロシアに責任を負わせ、この戦争は、プーチン露大統領にとって戦略的失敗であることを団結して証明する」と強調した。共同声明には、ドイツ、フランス、イタリア、カナダも賛同している。 ロシアのSWIFTからの排除を巡っては、天然ガス輸入などロシアとの貿易関係の深い欧州が、慎重姿勢を示していた。 ロシアのプーチン大統領は9日、ロシアが不法占拠する北方領土を含むクリール諸島(北方領土と千島列島の露側呼称)に進出する国内外の企業を対象に、所得税などの各種税を原則的に20年間免除する法案に署名し、発効させた。ロシアは北方領土を事実上の「経済特区」として企業を誘致し、実効支配を強める思惑だ。 同法案に対し、日本は北方領土での共同経済活動を目指すとした日露合意に反するとして抗議してきた。一方、ロシアはウクライナ侵攻で日本が対露制裁を発動したことに反発。7日には、自国通貨ルーブルによる外貨建て債務の返済を認める「非友好国・地域」のリストに日本を含めた。 日露関係は極端に悪化しており、日露平和条約交渉の先行きは極めて不透明となっている。 北方領土への特区設置案は昨年7月、ミシュスチン首相が訪問先の北方領土・択捉(えとろふ)島で表明。プーチン氏も支持した。露政府が法案を作成し、今月4日までに露上下両院で可決されていた。 read.cgi ver 07.5.0 2024/04/24 Walang Kapalit ★ | Donguri System Team 5ちゃんねる