perl
諸事情で Perlを書いていてやり方がわからなかったので調べた. ローカルファイルの tar.gzを展開みたいなのはそれなりにあったけど, オンメモリのまま処理する方法が皆無だった. #!/usr/bin/env perl use strict; use warnings; use HTTP::Tiny; use Encode;…
某モジュールのメンテンスでテストに必要なモジュールを入れようとしたらそもそもエラーが出るということで, エラー原因を調べてみたところ下記のようなエラーが出ていた。HTTP::Tinyを使った httpsへの GETが軒並み失敗していることが原因であった。 $VAR1 …
metacpan.org github.com Debugビルドした Perlだと extract_by で assertionに引っかかることがあった問題の修正. 戻り値の個数が引数の数より多い場合 EXTEND を使って Stackを確保しないといけないという理解. 他のメソッドはなんで引っ掛からないんだっ…
https://metacpan.org/release/SYOHEX/Text-Xslate-3.3.6 I released Text::Xslate 3.3.6. This version fixed include issue. Include Issue Perl VM stack pointer goes wrong by each include call. For example. #!perl use strict; use warnings; use T…
We should open file with write intent for using flock(fh, LOCK_EX) for portability. Because flock(fh, LOCK_EX) is failed without write intent on some platforms(such as Solaris) and platforms which does not provide flock. (In this case Perl…
https://github.com/tokuhirom/Linux-Socket-Accept4/pull/6 ハマったのでメモ. Perl 5.11以降では, SVt_RV(リファレンス型)は SVt_IV(整数型)のエイリアス(同値) なのですが, それより前では異なる値です. リファレンス型の判定に SVt_IVしか 使っていなか…
追記 リポジトリには, 5.20と書いた場合, 5.20として扱うという 対応が入っているようです. ただ 5.30が仮にリリースされると ハマる修正なので, 引用符で囲むのが確実です. (なお 5.30が出ると, 5.3と判断される予定です. そのときにはまた修正が 入るかも…
@moznionさんより最新版では早くなっているという ことなので改めて計測してみました. 傾向を見るためにファイルの行数別に測定を分けてみました. 比較対象 Perl::Lint 2014年 8月 27日時点の最新版(github) Perl::Critic 1.122 ベンチマークコード #!perl u…
Released Perl::Lint as underdevelopment - その手の平は尻もつかめるさ 環境 さくら VPS 1G Ubuntu 14.04 64bit GCC 4.8.2 Perl 5.20.0 モジュールのバージョン Perl::Lint 0.01_01 Perl::Critic 1.121 ベンチマークコード #!perl use strict; use warning…
https://metacpan.org/release/Text-Xslate Text::Xslate 3.2.4 is out. Changes Fix for blead Perl add first and last method for arrays Fix for blead Perl Perl changes representation of unused Array slots from Perl 5.19.4 and this causes segme…
自分しか使っていないと思っていたのですが, @sugyanさん等 他にも使っている人がいることが判明したので, 登録しました. リポジトリ https://github.com/syohex/emacs-helm-perldoc インストール M-x package-install helm-perldoc PERL5LIBの設定 helm-per…
ふと Perl 5.19.6をインストールして, Plackをインストールして 見るとテストがコケたので原因を調べていました. 原因は, $!がデコードされていたことでした. エラー t/HTTP-Server-PSGI/harakiri.tがエラーとなります. これには LWP::UserAgent->getが失敗…
少し前ですが, Devel::CheckCompiler 0.04がリリースされました リポジトリ https://github.com/tokuhirom/Devel-CheckCompiler 新機能 check_compile関数は今まではオブジェクトファイルを生成するだけでしたが, executable => 1を渡すことで実行ファイルを…
http://shop.oreilly.com/product/9781593275204.do 来月 Oreillyから出るのかと思ってググって見たら, 電子書籍として 4年前に出たものの紙バージョンでした. 紙で読むのもあれなので, 電子書籍版を読みました. $10なんで安いと思います. 電子書籍版 http:/…
Monoceros等で利用される POSIX::Socketのテストが こける理由のメモ. RTに登録すべきなんだろうけど、手元の環境ではうまくいかないので ここにメモっておきます(サーバサイドの問題??). 問題となるテスト t/10send.tの 2つめのテストが通りません(#2となっ…
挙動の違いがあったのでメモ. サーバプログラム use strict; use warnings; use Plack::Builder; builder { enable 'Deflater'; # Don't use version 0.10 sub { [200, [], ["hello world\n"]]} } LWP::UserAgent レスポンスオブジェクトの contentメソッド…
http://d.hatena.ne.jp/syohex/20111005/1317829402 以前自分で調べておきながら再度ハマってしまったので、 専用のエントリを書いておきます。 対象 MULTICALLを使ったモジュールを Perl 5.10以前にも対応させたい方。 Perl 5.12以降のみをサポートというの…
HTTP::Tinyとプロキシ設定に関するメモ - Life is very short 以前 no_proxyが機能しないから、localhost等で問題があると 書いたのですが、HTTP::Tiny 0.32で no_proxyがサポートされ ましたので、その問題は解消されました。 metacpan https://metacpan.or…
追記 HTTP::Tiny 0.32で no_proxyがサポートされました http://weblog.bulknews.net/post/52850922612/make-lwp-optional-by-miyagawa-pull-request-408 Plackの LWPの依存が optionalになってから、プロキシ環境下ではテストが パスしなくなったなぁと思っ…
http://perldoc.jp/docs/perl/5.18.0/perl5180delta.pod#splits32first32argument32is32more32consistently32interpreted 知らなかったのでメモ。Templateのテストが Perl 5.18でこけていたのは これが原因のようです。なおリリースはされていないようですが…
Reply is awesome! - blog.64p.org Perlの軽量 REPL Replyを Emacsから使うための 拡張を書きました。まだあまり機能はありません。 リポジトリ https://github.com/syohex/emacs-reply コマンド run-reply Replyを起動 reply-send-region リージョンの内容…
WebService-DMM-0.08 - DMM webservice module - metacpan.org 修正箇所 エラーレスポンスが返ってきたときの不備の修正 生のレスポンスオブジェクトを返すメソッド(last_response)の追加 前者はエラーが返ってきたときにレスポンスオブジェクトの is_succes…
Minillaの minilコマンドの zsh補完関数を作ってみました。 リポジトリ https://github.com/syohex/zsh-perl-completions 最新版はこちらで管理しています。問題があれば上記のリポジトリの issuesを 利用してください 使い方 下記のコードを _minilとして適…
./Build時に Parse::Yappの文法ファイルを yappコマンドを通して、 モジュールを生成するということがしたかったのでその方法を調べ ました。 アクションを追加する方法 Module::Buildのサブクラスを作り、Action_hookpointの関数を 作ることで actionを追加…
http://www.zusaar.com/event/582004 kyoto.pmに参加しました。ハッカソンだったのですが、最近タスクがいろいろ 溜まっていたのでを主にそれを消化していました。家だとどうしても 2chまとめを みたり、ニコニコ動画を見ながら作業をしてしまうので、だらだ…
https://github.com/syohex/emacs-helm-perldoc 概要 helm-perldocはモジュールのドキュメント閲覧、ソースコードの閲覧を helmインタフェースを通じて行うための helm拡張です。 更新内容 __DATA__, __END__以降を探索していた問題を修正 Super class対応 …
おそらくはそれさえも平凡な日々: 2013年のGetopt::Long でも紹介されている pass_throughに関するメモ。 pass_throughオプションを有効にするとオプション解析の終了を意味する '--'が @ARGVに含まれます。 以下のようなコードの場合、 #!perl use strict; …
Plack::Middleware::File::Less を lessc でコンパイルするように - naoyaのはてなダイアリー で紹介されている。Plack::Middleware::File::Lessのソースの 以下の部分が気になりました。 sub less_command { my $less = shift; my $pid = open3(my $in, my …
概要 Make your terminal snow with python · GitHubの Perl版。 ソース #!perl use strict; use warnings; use Encode (); use Time::HiRes (); use Term::ReadKey (); local $| = 1; my %snowflakes; my ($columns, $rows) = get_terminal_size(); main();…
http://perl-users.jp/articles/advent-calendar/2012/casual/13 のパッケージ名チェックを Emacs Lispで書いてみました。 コード (defun cperl-get-package-name () (save-excursion (goto-char (point-min)) (if (re-search-forward "^\\s-*package\\s-+\\…