タグ

Perlに関するanotherのブックマーク (7)

  • perl -p - 兼雑記

    はいお役立ちの Perl 講座のコ〜ナ〜です。突然ですが perl -p オプションは便利ですよー。例えば前、 ABA さんのコードに使われている OpenGL の API のリストを作ろうと思ったんです。 egrep 'gl(u|[A-Z])' src/**/*.d | perl -pe 's/.*?:\s+//; s/\(.*//; s/.*?(gl.*)/\1/' | sort | uniqうわー便利だねー。 zsh の **/*.d で全ソースを適当に grep した後に -pe でフィルタかけてるってわけさー。要するに sed みたいな。 あと -i と組み合わせると便利なのだよー。こないだ separation って書いてた部分はヘンだから distribution を使えって言われたので perl -i -p -e 's/separation/distribution/g'

    perl -p - 兼雑記
    another
    another 2007/05/11
    末尾の「}{」が!
  • 更新履歴兼雑記 - Perl記号ゴルフとAcme::EyeDrops

    ここからが題です。 Perl は頭がおかしいです。すごすぎる。この感動を伝えたいと思います。まず Perl の基からです。 Hello world! を書きましょう。 ''=~('(?{'.('[[).[|`%,,/`[/[@$'^'+)@@/^(@@@@@,@),@').'! "})')えーと。このくらいわかりますよね。これは Hello world という一番簡単なプログラムなのでわからない人はちょっとプログラムの才能が無いです。嘘ですが。 Perl では記号だけでは出力もできないかな、というような話をしていたところ、 Acme::EyeDrops の出力は記号だけで出力してるぞ、ということでした。これは見たことがあったのですが、確かに今見ると記号だけです。で、これの出力の意味を理解してたんですが、なんともすごいものでした。書いてから後で Perl ヤロウどものことだから既に常識だ

    更新履歴兼雑記 - Perl記号ゴルフとAcme::EyeDrops
    another
    another 2006/11/07
    これは変態すぎる。
  • 配列から効率良くプレースホルダを作る : にぽたん研究所

    my @a = qw(foo bar baz); こんな配列から ?,?,? という文字列を使いたい場合があります。 例えば、 SELECT * FROM hoge WHERE user_id IN (?,?,?); みたいな SQL にする場合のプレースホルダを作ると言った具合に。 社内 IRC で、clouder さんが言い出して、 18:27 <clouder>join(',', map('?', @a)) 18:27 <clouder> こんなのしか思いつかない。。 と言う。 まぁ、それが妥当というか、普通それが思い浮かぶよなーって思ってたら、会社の dos さんという人が 19:15 <dos> '?,' x @a; で s/,$//; というソリューション とか、異様なことを言い出した。 sub placeholder_from_array { return join(',',

    配列から効率良くプレースホルダを作る : にぽたん研究所
    another
    another 2006/08/11
    よりobfuscatedな解: 「return @_?"?".",?"x$#_:"";」。
  • 404 Blog Not Found:perl -勝手に添削 - WEB DB Press Vol.32 pp.94

    2006年04月22日15:00 カテゴリWEB+DB PRESSLightweight Languages perl - 勝手に添削 - WEB+DB Press Vol.32 pp.94 というわけで、突然はじまりました勝手に添削のコーナー。 WEB+DB PRESS 今回は、WEB+DB PRESS Vol.32の「Yahoo! Web サービス活用ガイド」から。 私もWEB+DB Pressへの連載をはじめたので、同誌のますますの(反映|繁栄)を祈ってやまないのだけど、それだけに、同誌にこういうサンプルコードがあるのは気になる。一応きちんと動くので、blogとかのentryであればこれでもよいのだけど、この手の雑誌はかなり長い間保管され、読者に何度も参照されることを考えれば、「その後」のことを考えて推敲しておく方がいいだろう。Damianも言っていたように、「ソースコードは未来の自

    404 Blog Not Found:perl -勝手に添削 - WEB DB Press Vol.32 pp.94
  • Perl6 あなどれじ。クロージャ記述の短さ対決! - Smalltalkのtは小文字です

    id:m-hiyama さん経由で、404 Blog Not Found の「水と油、returnとλ」によると…、 しかし、Perl6はこんなもんじゃありませんよ! Perl6: sub($x){ $x + 1 } # 基形 -> $x { $x + 1 } # -> を使うと()が不要になる sub{ $^x + 1 } # placeholder を使うと... { $^x + 1 } # なんと sub までいらない! とのこと。 以前、ポール・グレアムが「技術野郎の復讐---Revenge of the Nerds---」の付録でアキュムレータの記述の簡潔さを競わせていたとき、Smalltalk の例を見て、こんなのメソッドで定義せずに、ブロックだけでいいじゃん…。しかも、Squeak の Smalltalk ならブロック変数(グラハム言うところのパラメータ)にも代入できるから

    Perl6 あなどれじ。クロージャ記述の短さ対決! - Smalltalkのtは小文字です
  • orz perlモジュール - inuzのブログ

    http://search.cpan.org/~ingy/orz/lib/orz.pm バカですか(笑) total failureって何だろう?って思ったので、ソースを読んでみると sub pmc_compile { my ($class, $source) = @_; $source =~ s/^/# /gm; return "# orz...\n$source"; }こういうことだった。use orz;した後からのソースがコメントアウトされる、というわけだ。 #!/usr/bin/perl print "a\n"; print "b\n"; use orz; print "c\n"; no orz; print "d\n";サンプルソースにしてもお粗末過ぎる内容だけれど、これを実行すると、"c"は出力されない。こっからここまでをコメント化してテストしてみる、そういうコーディングスタイ

    orz perlモジュール - inuzのブログ
    another
    another 2006/03/14
  • iandeth. - Perl の use と require の違い

    以前飲み会で、会社の先輩と「use と require の違いってなんじゃ?」てな話をした際、知識不足ゆえうまく答えが出せなかったのですが、Programming Perl 等をちょろちょろ読み始めた今なら、ちょっとはマシな回答が出来る気がした /w のでまとめてみました。 perldoc を始め、色々なサイトや書籍でも既に述べられているとおり、 use はコンパイル時に評価される - module load happens at comile time. require は実行時に評価される - module load happens at run time. が明確な違いになります。また、 perldoc(*) によると use は実際には以下のコードを実行するのと同等だそうです : BEGIN { require MODULE; MODULE->import(LIST); } 特殊ブ

  • 1