タグ

Perlに関するhitsujibaneのブックマーク (209)

  • PerlのXSからPerlの関数を簡単に呼び出せるようにしてみた (C++で) - moriyoshiの日記

    Perlの謎APIをwrapして、Perlスクリプトの関数をC++から簡単に呼び出せるようにしてみた。 てか、 リファレンスカウントを透過的に行えるようpimpl形式のコンテナを使ってみる mortalを透過的に行えるようcall_sv()による関数呼び出しを完全にブラックボックス化する って実験をやりたかっただけなのにDevel::BindPPとは完全に別プロダクトになっちゃいました。 test1() は、任意の数の引数を取り、引数の合計値を返す add()という関数 *1 を C++ から呼び出す例。 test2() は、MIME::Base64::encode_base64() を呼び出す例。 test3() は、複数個の値を返す関数を処理する例。 test4() は、perl::value() の演算子オーバロードのテスト。 #include <iostream> #include

    PerlのXSからPerlの関数を簡単に呼び出せるようにしてみた (C++で) - moriyoshiの日記
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Perl and C++

    Gluing C++ And Perl Together August 27, 2001 Perl XS (the Perl native glue) and C++ hookup is not clearly covered in any one reference that I can find. So here's some coverage. 1. Preparing the Installation XS totally supports C++. XS is not the problem. Getting MakeMaker happy is the problem. And even that is just a few words. Here's the steps to create a working C++ project from scratch: Run h2x

  • Perl 5.8.x における日本語コード変換★

    Perl 5.8ではEncode.pmが標準モジュールとなり、多バイト文字を標準で簡単に扱えるようになりました。が、jcode.plやJcode.pmを用いたコード変換の経験があると、逆にこれが仇となって文字化けの嵐に遭います。(私の場合そうだったというだけで、普通はそんなこと無いのかもしれないのですが。)漸く最近になって基的な考え方が飲み込めるようになって来たので、この辺をまとめておこうと思います。なお、メモは新たにPerl 5.8.x的なPerlスクリプトを書く際に気をつけることをまとめたものであり、基的には既存のスクリプトにPerl 5.8 + Encode.pmを適用するためのものではありません。また、utf8でスクリプトを書くことを前提にしています。が、どちらにせよ、この知識は参考になると思います。(たぶん。) 文冒頭ですが、まず参照先を示しておきます。以下のドキュメント

  • EmacsでPerl開発する上で必須な設定 #3 - perldoc-m - Kentaro Kuribayashi's blog

    PODを読んでもよくわからない、あるいは、そもそもPODがちゃんと書かれていないモジュールの挙動を知りたい場合、perldoc -mを使いまくることがよくあると思います。単にperldocを読みたい場合は、id:IMAKADOさんによる素晴しいperl-completion.el(これも当然必須です)が非常に便利なのですが、perldoc -mの表示をバッファを作って表示させたい場合、以下のような設定を書いておくと、これはこれで便利だと思います。というか使いまくってます。 ポイントがある位置のモジュール名、あるいはなんにもなければプロンプトでモジュール名を指定して、ウィンドウをポップアップしてperldoc -mを表示 perldoc-mコマンドを実行したバッファが、既にperldoc-mコマンドで開いたバッファなら、その場で表示 多分これ、どこかからもらってきたのを改造したのだと思うけど

    EmacsでPerl開発する上で必須な設定 #3 - perldoc-m - Kentaro Kuribayashi's blog
  • EmacsでPerl開発する上で必須な設定 #1 - antipop

    これは絶対に必須ってのだけ、気が向いたら連載して逝きます。まずは、Perlというか全般的な話題から。 ack いきなりPerlと関係ないけど(まあPerlで書かれたツールという関係はあるか)、必須過ぎるので。 Andy Lester / ack - search.cpan.org 以前書いたのの再掲になるけど、重要なのでもいちど。 Emacsからackの検索結果を使う - antipop (defun ack () (interactive) (let ((grep-find-command "ack --nocolor --nogroup ")) (call-interactively 'grep-find))) ackは検索だけだが、ある条件にマッチする箇所を一斉に編集したいという要求については、moccur-grep-findが異常に便利。 tags Meadow/Emacs mem

    EmacsでPerl開発する上で必須な設定 #1 - antipop
  • Perl 5 今昔 - Perl-users.jp

    前は王道だったあの書き方も最近ではこうかな、というもの集です。 一般編 oldtype としたものもたいていは動きますし、環境の都合や軽量だなどの理由で普通に使われたりもします。そのへん勘違いなきよう。 CPANモジュールの検索 自動リダイレクトされるので知ってると思いますが。 oldtype: search.cpan.org modern: MetaCPAN CPANモジュールインストール oldtype: perl -MCPAN -e shell modern: cpan post modern: cpanm Module OR マッパー oldtype: Class::DBI, DBIx::Skinny modern: DBIx::Class, Data::ObjectDriver, Teng, Aniki テンプレートエンジン oldtype: HTML::Template, Te

    hitsujibane
    hitsujibane 2009/04/01
    モダンPerl入門
  • 404 Blog Not Found:perl - Encode 入門

    2008年04月09日01:00 カテゴリLightweight Languages perl - Encode 入門 すでにOSCONでもYAPCでも、あちこちそちこちでこの基方針に関しては話したのですが、ここ 404 Blog Not Found でも改めて。 Perl で utf8 化けしたときにどうしたらいいか - TokuLog 改め だまってコードを書けよハゲ 入り口で decode して、内部ではすべて flagged utf8 で扱い、出口で encode する。これがすべてです!とにかくこの基方針をまもっていれば幸せになれます。ここでは、EUC-JPでエンコードされたファイル中の「小飼弾」「こがいだん」「コガイダン」「Kogai Dan」を正規表現で書き換えて標準出力にEUC-JPで出力するプログラムを例にとって説明します。 decode() then encode(

    404 Blog Not Found:perl - Encode 入門
  • 404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン

    2007年10月30日20:00 カテゴリLightweight Languages perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン 久々の勝手に添削。今回はこちら。 40行で作るPerl用テンプレートエンジン 正規表現がらみなので、Perl以外でも有用。 添削箇所は、こちら。 40行で作るPerl用テンプレートエンジン sub convert { return unless defined(my $str = shift); $str =~ s{&amp;}{&amp;}gso; $str =~ s{<}{&lt;}gso; $str =~ s{>}{&gt;}gso; $str =~ s{\"}{&quot;}gso; $str; } これの最初のsubstitutionが&amp;ではなくて&ではないかというのはさておき、こういった場合、何度も正規表現をかけ

    404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン
  • GitHub - tokuhirom/optimize-perl-doc: how to optimize your perl code?

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - tokuhirom/optimize-perl-doc: how to optimize your perl code?
    hitsujibane
    hitsujibane 2009/03/30
    Perlの最適化手法について
  • perl - for(;;)よりforeach : 404 Blog Not Found

    2009年03月29日23:45 カテゴリLightweight Languages perl - for(;;)よりforeach Perlベストプラクティス Damian Conway / クイープ訳 [原著:Perl Best Practices] 最近のid:naoyaのソースがすごく気になったので。 何が気になるかというと、for(;;)の利用。それもCやJavaScriptなど、事実上それしかないソースからそのまま転写したとかならとにかく、編集距離 (Levenshtein Distance) - naoyaのはてなダイアリーでは Python版がちゃんとxrangeを使っているのにPerl版がfor(;;)のでますます解せない。 "Perl Best Practices"でも、読みやすさの観点からCスタイルのforは避けよ(pp. 100-101)と言っているが、もう一つ損な

    perl - for(;;)よりforeach : 404 Blog Not Found
    hitsujibane
    hitsujibane 2009/03/30
    for(;;)よりforeach使った方が高速
  • C++ で Perl 拡張を書くためのモジュールを書いた - TokuLog 改めB日記

    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} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    hitsujibane
    hitsujibane 2009/03/29
    XSを使う前に、C++とPerlの組み合わせに馴染むのにいいかも
  • perl - B::Concise で VM の気持ちに触れる : 404 Blog Not Found

    2009年03月27日19:30 カテゴリLightweight Languages perl - B::Concise で VM の気持ちに触れる こういう時に便利な標準モジュール、B::Conciseを紹介します。 YappoLogs: CPUの気持ちは大事だけど、VMの気持ちも考えようよ ブロックがあるという事は、スコープがあると同義なのは当たり前ですが、スコープが変わるという事はレキシカル変数の処理などをやらなきゃいけないわけで、{}があるだけでもPerlは処理をいっぱいするわけですコマンドラインから B::系列のモジュールは、こちらが標準的な使い方。 % perl -MO=Concise -e '{$a=1}' 9 <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 2 -e:1) v:{

    perl - B::Concise で VM の気持ちに触れる : 404 Blog Not Found
  • tokuhirom blog

    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} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    hitsujibane
    hitsujibane 2009/03/22
    CPANに上げられている、よく使う正規表現をモジュール化したものの紹介
  • Writing parsers for fun and convenience

    hitsujibane
    hitsujibane 2009/03/22
    Perlでパーサを書く
  • Working with Test::Class Test Suites - Modern Perl Programming

  • Using Test Control Methods with Test::Class - Modern Perl Programming

  • CPAN デビューしました。 : torus solutions!

    いままで Perl は相当長いこと使っていましたが、これまで一度も CPAN に自分のモジュールを登録したことがありませんでした。で、昨日初めて自作モジュールを追加しました。 XML-LibXML-LazyBuilder-0.01 (現在リンク切れ。最新版は XML-LibXML-LazyBuilder-0.03)です。 これは、だいぶ前に 「XML を Perl の高階関数で。」というエントリーにまとめたものをモジュール化した物です。 モジュールの作り方は、昔自分で書いた「(貧乏な人のための)Perl モジュールの作り方。」という記事を参考にしました(笑)。この記事はすでに 5 年も昔に書いた物でですが、まぁ大筋はそんなに変わっていません。とは言っても、現在ではここに書いた以上に便利なツールがたくさん標準で用意されているようなので、最低でも ExtUtils::MakeMake

  • Perl におけるオブジェクト指向 : torus solutions!

    Perl のオブジェクト指向プログラミングは、 JavaC++ のようなクラスベースではありません。 また、JavaScript のようなプロトタイプベースでもありません。 なので、ほかの言語になれている人が Perl でオブジェクト指向プログラミングをやろうとすると、 いろいろと違和感を覚えてしまうと思うので、 その変わったところをまとめてみます。 bless とオブジェクト Perl のオブジェクトを作るときは、 まず組み込みのデータ型から適当なものを選びます。 普通はハッシュを使うことが多いと思いますが、 配列やクロージャ(無名サブルーチン)もオブジェクトに出来ます。 ハッシュを使ってオブジェクトを作るには、 まず普通にハッシュを作って: my %self = (foo => 1, bar => 2); 次のそのリファレンスをクラス名に「bless」します: my $objec

  • perl - EncodeでXSSを防ぐ : 404 Blog Not Found

    2009年03月03日19:00 カテゴリLightweight Languages perl - EncodeでXSSを防ぐ 良記事。 第7回■文字エンコーディングが生み出すぜい弱性を知る:ITpro だけど、問題点のみ具体例があって、対策にないのが片手落ちに感じられたので、その点を補足。 結論だけ言ってしまえば、Perlなら以下の原則を守るだけです。 404 Blog Not Found:perl - Encode 入門 すでにOSCONでもYAPCでも、あちこちそちこちでこの基方針に関しては話したのですが、ここ 404 Blog Not Found でも改めて。 Perl で utf8 化けしたときにどうしたらいいか - TokuLog 改め だまってコードを書けよハゲ入り口で decode して、内部ではすべて flagged utf8 で扱い、出口で encode する。これが

    perl - EncodeでXSSを防ぐ : 404 Blog Not Found