Perl Advent Calendar 2014の枠が空いていたので、ただのメモですが10日目の記事として晒すことに。 今さらかなり基本的なことだけど、Perlでのベンチマークの実行方法を調べて、適当にいろいろ試してみたメモ。 Benchmarkモジュール 基本的にはperldocを見れば良い。 ゆとりなのでPerldoc.jpにて。 いろいろ関数があるけども、よく使いそうな雰囲気なのは次の2つな気がした。 timethis : 特定のコードの実行速度を測る cmpthese : 複数のコードの実行速度を測りつつ比較する timethis DateTimeは遅いって言われているけど、実際にどれくらい遅いのか試しに測ってみる。 現在の時間を取得して1日足すという処理を例に。 timethisの1つ目の引数は、2つ目の引数の処理を実行する回数を示している。 第2引数には、CodeRefかev
Perl は正規表現とか " ではさまれた文字列の中にある変数とか配列を展開してくれるんですが、これは明らかに正規表現の文字クラス ([abc] とか書くヤツ) とブツかるわけです。 以下のコードは @a に 0-999 まで "x" っていう変数をつっこんでから s/$a[...]/y/; 的なことを実行して、 $_ に入ってる x を y に変えようとするコードをいくつか。 #!/usr/bin/envperl for ($i=0; $i < 999; $i++) { $a[$i] = "x"; } $_ = "x"; s/$a[12]/y/; print "12: $_\n"; $_ = "x"; s/$a[123]/y/; print "123: $_\n"; $_ = "x"; s/$a[-2]/y/; print "-2: $_\n"; $_ = "x"; s/$a[-22]
はじめに 自分のmacではperlを使うにあたりplenvを使用しているので、 アプリやらサービスやらのディレクトリ内のperlバージョンはplenvで管理・固定しています。 モジュールはそんなに気にしていなかったのですが、 モジュール管理としてちょいちょいcarton使うことがあったので一連のメモを残しておきます。 アジェンダ plenvいれる cartonいれる 1. plenvいれる これは別途記事があるのでそちらを参考にしてみてください →【perl】plenvでperl x cpanm x carton環境を作る -mac編 2. cartonいれる 1のplenvとcpanmまで入っていたらあとはすぐですが、 こんなながれでやります plenv経由のcpanmでcartonインストール plenv経由のcartonコマンドでcpanfileを指定してモジュールインストール p
Perlのbugreport eco-systemまわりはOSSとしてはわりと理想的だと思っています。つまり有用なレポートを生成する仕組みがあり、perlコア開発者だけでなくライブラリ開発者もその仕組を活用できるため、可搬性のあるソフトウェアとしてメンテナンスし続けやすいのです。もっとこのあたりはもっと真似されるべき。 まずバグレポートには現象と再現手順と環境の情報が必須ですが、環境の情報はperl -V で非常に簡単に取得できます。これは以下の情報を含みます。 ソフトウェアの名前とバージョン (e.g.perl 5.18.1) ターゲットプラットフォーム (e.g. osname=darwin, osvers=12.4.0, archname=darwin-2level) ビルドオプション (e.g. config_args='-Dprefix=/Users/goro-fuji/.
Perl における一般的なコーディング規約について http://perldoc.perl.org/perlstyle.html http://perldoc.jp/docs/perl/5.8.0/perlstyle.podperlstyle.pod にのっているものが公式のスタイルガイドです(Larry 風)。 Larry has his reasons for each of these things, but he doesn't claim that everyone else's mind works the same as his does. このへんがPerl らしさ、というかそういうかんじですね。Perl Best Practice にのっている Damian style もありますが、これはだいぶ癖がつよいです。 日本では「miyagawa さんのスタイルにあわせて
決勝戦, ほとんどL4DとTF2のひとやんけと思った. はじめてOverwatchの動画みたけどTF2にしか見えなかった 最近OverwatchのプロゲーミングクランであるところのDeToNatorにlolitaさん入ったみたいだし. Plabメンの出世もすごい 以下は気づいた点 Xキーで上下スロットの切り替えが可能 鉄道楽しいけどクリアには作る必要はなさそう (2車線, 8駅も作った) 電子部品をとにかく量産すると良い (後半たくさん使います, ソーラーパネルだけでも1500個は使う) 生産速度モジュールを量産すると良い. 各種製造機の効率アップにも使えるのと最終的にはロケットの製造に使えるため 軽油は固形燃料にしておくと良い。ロケットの燃料を製造できたら後は蒸気機関のボイラーに回す 二種類の素材を一つのレーンに流すのを多用すると良い ロングインサーターが不要になるため アセンブリ言語で

ruby 、perl 、python の多倍長整数演算の速度を適当に比較してみました。フィボナッチ数の計算速度比較以上にどーでもいい比較です。 前置き 使用した処理系のバージョンはそれぞれ以下のとおりです。ruby 1.9.0 (2008-01-16 revision 0)perl v5.10.0python 3.0a2perl は多倍長整数を扱う方法が何個かあるようなので、標準装備らしい bigint と、別途 CPAN でインストールしないといけない Math::BitInt::GMP (GMP の binding) の 2 種類を試しました。python の psyco はなんか動かなくて面倒だったので試してません。この比較にはあまり影響しないような気がしてます。僕はPerl とPython は素人なので、もっと速くて美しい書き方・やり方があったら教えてください。 実験
簡単にfibを高速化する方法を読み、おおっと思って、Perlでやってみた。 #!/usr/bin/perl use strict; use warnings; use feature qw/state/; use Benchmark qw/timethese cmpthese/; sub _fib_ret2 { my $n = shift; if ( $n == 1 ){ (1,1); } else { my ( $aa, $bb ) = _fib_ret2($n-1); ($aa+$bb, $aa); } } sub fib_ret2 { (_fib_ret2(shift))[0]; } sub fib_memo { state @cache; my $n = shift; $cache[$n] ||= $n <= 1 ? 1 : fib_memo($n-2) + fib_memo($n
一部の方はすでにご存じの通り、先日 "RUBY"や"OPENSOURCE"などの商標登録が出されていた他、"Perl"および"パール"の商標登録がプログラミング言語Perlの開発およびコミュニティと全く関係のない法人(テラ・インターナショナル)により出願され、受理されてしまっていることが発覚いたしました。 JapanPerl Association (JPA) としては本件に関して法的な対応をするかどうかを含め検討中ですが、取り急ぎ現実的にプログラミング言語「Perl」を日常的に使用されている皆様に向けて現在の状況とそれに対してどのように対応するべきかJPAとして調査した結果をお知らせいたします。 まず プログラミング言語「Perl」を自社製品、サービスに対して使用することについてはなんの問題もございませんし、それを使って作られた製品を使用・開発することに対して使用料等が発生することはあ

Steve Yegge / 青木靖 訳 2004年9月 これは駆け足の言語案内だ —Amazon Developers Journalのために今月書いていたのだが、どうもこれを見苦しくないようにする方法を見つけられなかった・・・。 ひとつには、私はどうも粗野で口汚くなりがちで、オフィシャルな趣のあるAmazonの出版物に載せるのは不適切に思えた。それでかわりに誰も読まない自分のブログに押し込めてしまうことにした。読んでるのはあなたくらいのものだよ。どうも! もうひとつ言うと、これは本当に書きかけのものであり、そこかしこの断片を集めたものでしかない。全然磨き上げられていない。これもブログエントリにする理由になっている。ブログなら別に良質である必要も完全である必要もない。単に私が今日考えたことというだけのものだ。ではお楽しみを! この駆け足の案内では、C、C++、Lisp、Java、Perl
第8回 参加者の成長を見守る、Shibuya.pm 2代目リーダー 長谷川玲奈(@IT自分戦略研究所) 大星直輝(撮影) 2009/3/23 竹迫良範(たけさこよしのり) Shibuya.pm リーダー 1977年3月2日、広島県出身。サイボウズ・ラボ所属。2002年、広島市立大学 情報科学部 知能ロボット講座卒業。在学中の1998年より、コンピュータメーカー子会社にてECサイトの開発に携わる。2001年にはNamazu Projectに参加。ShibuyaPerl Mongers(Shibuya.pm)には2003年のスタートアップセミナーから参加し、2006年に2代目リーダーに就任。 ■「バソキヤ2006」でShibuya.pmの新リーダー誕生 Shibuya.pmのリーダーになったのは2006年です。宮川さん(シックス・アパート 宮川達彦氏、Shibuya.pm 初代リーダー)が渡
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [intemplate "__entry.ftlh" atline 3, column 25] - Reached through: #include "__entry.ftlh" [intemplate "entry.ftlh" at
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [intemplate "__entry.ftlh" atline 3, column 25] - Reached through: #include "__entry.ftlh" [intemplate "entry.ftlh" at
連載企画 第1回Perl で DSL する方法 昨年の YAPC の頃に書こうと思ってたネタを id:cho45 さんのひとことで不意に思いだしたのでここに記す。 まず、DSL とはなにか。この連載企画では↓こういうのを DSL とよぶことにします。session 'testuser' => run { flow 'log in and out' => check { flow 'log in' => check { get 'http://localhost/'; fill form 'login' => { username => 'testuser', password => 'drowssap', }; content should contain 'log out'; }; flow 'log out' => check { get 'http://localhost/';
Yahoo! JAPAN の「日本語形態素解析Webサービス」を使うモジュールを作り始めて、coderepos にうpらせていただいたよ!この子は、ヴァギナ(#vagina@irc.woremacx.com)から生まれた子供だよ。tomyhero さんとの会話の中でサービスを紹介してもらったのがきっかけで書き始めて、yusukebe さんに命名してもらったんだ。エラー処理を全くしてない子なので、これから書いていくよ!なにか気に入らない点があれば、coderepos の trunk に直接 commit していただけると助かります。WebService::YahooJP::TextParselib/WebService/YahooJP/TextParse.pmYahoo!デベロッパーネットワーク - テキスト解析 - 日本語形態素解析 use strict; use warnings; us
サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一本吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には食材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい食材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

コードの書きやすさは3つともそれほど違わないように思えます。ただ、読みやすさはダントツでPython が 優れています。Ruby はまずまずで、Perl は書き手の技量による部分が大きいのですが、 一般的には "読めない" コードになりがちです。 現在の人気を無視して、言語そのもののよしあしを考えると、Python とRuby はほぼ互角でしょう。しかし、今のところPython の方が、 実行速度が速く、ライブラリが豊富なので、とりあえずPython を使うことにします。 また、Python には対話モードがあるのも Lisp に慣れた人間にとってはありがたいです。Ruby は今後の健闘に期待します。 5. おわりに 以上Perl,Python,Ruby の比較をつれづれと書きましたがご参考になりましたでしょうか? 結論は、Python,Ruby はPerl に比べ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く