2013年頃に登場した plenvですが, 2018年となった今でもPerlの環境構築におけるデファクトスタンダードの立ち位置を維持しています.github.com この記事では, plenvを使ったモダンなPerlの環境構築の手法について紹介します. またplenvのような形で, 様々な言語のために開発された**envを束ねて管理できるanyenvを利用して, plenvを導入する方法についても紹介します. plenvのインストール Git $ git clone git://github.com/tokuhirom/plenv.git ~/.plenv $ git clone git://github.com/tokuhirom/Perl-Build.git ~/.plenv/plugins/perl-build/ $ echo 'export PATH="$HOME/.plenv/
Mar 3, 20183 likes8,261 viewsAI-enhanced description This document summarizes aPerl newsletter.It discusses using the Imager module inPerl tocreate images for aLINE news digest including a header, headline image with transparency gradient, images with titles, and footer.It provides code examples of using Imager to addtext, images, andshapes.It also mentions the newsletter service has grow
Go ForPerl Mongers (or, for Lightweight Language lovers) Daisuke Maki Engineer,LINE Corporation Who Is This Guy? @lestrratLINE / JapanPerl Association / YAPC::Asia (2008~2013) STF / peco (new!) 2 俺とGoGoしてみて約1年弱 概算10~12万行くらい書いた。lived○○rBl○g の裏方にもこっそりgo入れてる 最初の4万行くらいまでにgoの落とし穴にほぼ全て落ちた 自信がある 今日はその落とし穴から学んだ諸々の話 3 対象観客層 もともとPerl/Python/Ruby/PHPあたりから来た人Goは最低限とりあえずかじった程度はやった人 かじってみたけど「Go、便利そうだけどなん
(1)はこちら、(2)はこちらから。 Carton Cartonもcpanmと同様に、宮川達彦さんを中心に開発しているツールです。Cartonがどんなツールかについては、PODにズバリな一文があるので引用します。 carton is a commandline tool to track thePerl module dependencies for yourPerl application. 「Cartonとは、アプリケーションにおけるPerlモジュールの依存関係を管理するコマンドラインツール」というわけです。 また、PODのNAMEセクションには次の記述があります。 Carton -Perl module dependency manager (akaBundler forPerl)Rubyでお馴染みのBundlerという単語が出てきました。Rubyを使う人にはこちらの
ファイル指定で、ページキャッシュにのっているか確認したり追い出したりするPerlモジュールを書きました。 https://metacpan.org/release/Sys-PageCache https://github.com/hirose31/Sys-PageCacheLinux なら動くはずですが、動かなかったら教えてください。あと一応、FreeBSD 8.3以上でも動くと思います。 既存の実装にGoogleのlinux-ftoolsやエヌハヤシ氏のpagecache-toolがありますが、これのPerlモジュール実装(XS)になります。 https://code.google.com/p/linux-ftools/ https://github.com/nhayashi/pagecache-tool たまにfreeコマンドでみるとbuffers/cacheが食っててswapしてる
鼻が詰まって困ってます LWPやFurlを使ってインターネットから様々なファイルをダウンロードする。よくやりますよね。その際に大きなファイルをGETしてしまい、perlのプロセスがメモリを大量に使い、OOM Killerに殺されて2年経つ、なんて経験をした人もきっと多いはず。 そこで使うのがレスポンスをファイルに書き出す技。Furlであれば と書けて、$filenameのファイルに大きな画像データが保存されます。 しかし、取得対象とするデータが、大きなファイルから小さいファイルまでさまざまあり、また、取得しなければならない回数が多い場合、小さいファイルのためにいちいちテンポラリファイルを作るのももったいないと思う事もなきにしもあらず。 そんな場合に使いたいのがStream::Buffered。 Stream::Bufferedはデータを一時的に格納するバッファとして使え、格納するサイズが大
5.18.x, 5.16.x, 5.14.x をつかいましょう。 というのがフォーマルな回答です。本日時点でのPerl5 の最新版は 5.18.0 です。 このあたりのポリシーについてはperlpolicyというドキュメントが公式ドキュメントとなっていますのでごらんください。 このブログエントリーでもかいつまんで説明します。 バグフィックス 私たちが「公式に」サポートするのは、最新の安定版とそのひとつ前の安定版のみです。 5.12.x以前のバージョンはもうサポートの対象外です。5.18.0がリリースされたら 「公式に」Perl 5.14.xのサポートを終了します。ただし、後述するセキュリティ アップデートの提供は例外とします。 バグがみつかっても、過去2つのメジャーバージョンにたいしてしかアップデートは提供されません。今でいうと、5.18.x と 5.16.x 以外にたいするバグフィ
注:本稿はまだ書きかけです!書きかけです!まだ一般に知らしめようとする前にブクマされました!w 間違いの指摘やコメント等は lestrrat @twitter にください!Perl環境の設定方法はここ数年で大きく進化し、変わってきました。ここではアプリケーションのデプロイも見据えた、モダンなperl環境の整え方を紹介していきます。具体的にはperl本体や外部モジュールのインストール方法を解説したのち、Perlを使ったアプリケーションを管理・運用していく際に依存関係等はアプリケーション毎に管理できるようにしてグローバル環境に可能な限り干渉しない方法を紹介します。 目次 1.1 Perl本体のインストール 1.2 依存モジュールの管理・インストール 1.3 Cartonによるアプリケーションの実行環境の構築 tl;dr本稿を読む前にポイントだけ知りたい!という方向けのまとめです: OSに同
perlbrew best practiceperlbrew には $perlbrew upgrade-perlというのが実装されてるのがあまりにも有名ですが、これは現在使ってる環境のperl を、そのマイナーバージョンの中で一番新しいバージョンにアップグレードしてくれるんです。perl-5.16.1 を使っていたらperl-5.16.3 にperl-5.14.2 を使っていたらperl-5.14.4 に。という具合ですね。 同じマイナーバージョンのPerl では XS バイナリの互換性とか保証されているので、すでにインストールされているモジュールはそのまま利用できる状態になっています。 だがしかし $perlbrew installperl-5.16.2して作った環境を upgrade-perl すると 5.16.3 が入ってるのにperl-5.16.2 って名前が
深夜のテンションで「おりゃっ」とpullreqを送りつける今日この頃、皆様いかがお過ごしでしょうか。 そんな雑なpullreqに対応してくださってる皆様、本当にありがとうございます。 てことで、今週のpullreq活動。 愛用させてもらっているモジュール雛形作成ツール。 Module::Build対応とModule::Buildを使った雛形DefaultMBをpullreqして0.07でshipit してもらいました。 以下のようにすればM::B形式で簡単にモジュールが作成できます。簡単ですね! % cpanm Dist::Maker # 設定。設定ファイルの位置は ~/.dim/config % dim config --import-from-gitconfig % dim configtemplate.default DefaultMB # 雛形作成 % dim init My::
最近同僚が次々とCPAN Authorになってて良い流れだなーとか思っています。 ただ、CPANへのモジュールの上げ方がわからないとか、M::Iを使えばいいのか M::Bを使えばいいのか、それらがそもそも何やってるのか分からないという話も 聞くので、僕自身もその辺の知識を整理してアップデートしました。 とりあえず、今はModule::Buildを使っておけば良いんじゃないかと 思っていますが、そこに至る歴史的経緯をまとめてみます。 大体、以下に書いてあることに加えて、最近の動きを書いています。 Module::Build:MakeMakerの後継者を目指してPerlでCPAN形式のモジュールを配布する場合は、Makefile.PLなりBuild.PLなりを モジュール作者が用意して、それがインストールに必要なファイル類を自動生成 するという流れになっています。 既存の雛形を使うと色々ファ
これはなに? cperl-mode向けのマイナーモードです。 useしているメソッド、インストールされているモジュール、組み込み変数,関数、他のperlバッファの関数,変数、バッファのdabbrev候補などを補完したりperldocを引いたりする動作をanythingのUIで実行することができます。 インストール 以下から最新版をダウンロードできます。 http://svn.coderepos.org/share/lang/elisp/perl-completion/trunk/perl-completion.el ロードパスが通った場所に置いてcperl-modeのhookでマイナーモードをonにしてください、以下、設定サンプルです。 (add-hook 'cperl-mode-hook (lambda () (require 'perl-completion) (perl-comple
I like Path::Class, butit’s clunky and slow. So I wrote Path::Tiny toscratch myitch.It’s smaller (roughly half thelines of code), comes in a single file, and is generally faster. Among other things,it has lots of handyUTF-8 input and output methods. The downside is thatit’s less portable and less extensible, but let’s be honest, most of us are developing only for Unix orWindows anyway. An
PODを読んでもよくわからない、あるいは、そもそもPODがちゃんと書かれていないモジュールの挙動を知りたい場合、perldoc -mを使いまくることがよくあると思います。単にperldocを読みたい場合は、id:IMAKADOさんによる素晴しいperl-completion.el(これも当然必須です)が非常に便利なのですが、perldoc -mの表示をバッファを作って表示させたい場合、以下のような設定を書いておくと、これはこれで便利だと思います。というか使いまくってます。 ポイントがある位置のモジュール名、あるいはなんにもなければプロンプトでモジュール名を指定して、ウィンドウをポップアップしてperldoc -mを表示perldoc-mコマンドを実行したバッファが、既にperldoc-mコマンドで開いたバッファなら、その場で表示 多分これ、どこかからもらってきたのを改造したのだと思うけど
最近人気エントリーに便乗したネタが多くてすみません。 実用!PerlでコマンドラインからTwitter投稿(OAuth対応) では、Net::Twitter を使って OAuth で投稿する方法が紹介されていますね。 ところで、単純なtwitter bot 作るのにNet::Twitter 使います?「投稿なんて LWP で1発リクエスト投げればいいだけだから使わない」という人も多いと思いますが、Basic 認証が廃止されたらどうしましょう。 そのようなかた向けに、OAuth::Lite で OAuth 対応な HTTP::Request を作る方法をご紹介します。 consumer key, consumer secret, access token, access token secret は既に何らかの方法で取得できているものとすると、こんな感じです。 use OAuth::L
pull requestにしようかとも思ったんですけど、バグフィックスって わけでもないし、ここに書くことにします。あと多岐にわたるっていう のもあって、分割して requestするのが面倒だっていうのもいくらか あります。 私自身 にわかEmacs Lispプログラマなので間違いがあれば指摘してください。 リポジトリ https://github.com/kentaro/perlbrew.el 参考emacsで利用するperlを切り替える(perlbrew.elの紹介) - $shibayu36->blog; defgroup オリジナル (defgroupperlbrew nil "perlbrew" :group 'perlbrew) defgroupのパラメータは defcustomと同じですが、:groupはそれが 所属するグループです。なので上記のようにすると今定義する
plenv でつかわれるPerl をプロンプトに表示したりするのに使えるかと。検出ロジックは plenv とおなじつもり。 plenv_perl_version() { local dir=$PWD [[ -n $PLENV_VERSION ]] && { echo $PLENV_VERSION; return } while [[ -n $dir && $dir != "/" && $dir != "." ]]; do if [[ -f "$dir/.perl-version" ]]; then head -n 1 "$dir/.perl-version" return fi dir=$dir:h done local plenv_home=$PLENV_HOME [[ -z $PLENV_HOME && -n $HOME ]] && plenv_home="$HOME/.plenv"
2013-01-21 plenvを使ってみた. @tokuhiromさんがplenvという,Perl 5のインストール管理ツールを開発されたそうです. ブログ記事やREADMEをまとめてみると, plenvの特徴は...Rubyのrbenvから影響を受けている.perlbrewと違って, プロダクトごとにperlのバージョンを指定することができる. とても高速で, インストールも簡単.perlbrewのような機能を持つが, 完全な上位互換ではない. ...という感じっぽい. こういう時はグダグダ言わずに入れて試してみるに限る, というわけでさっそく導入してみましょうー! インストール plenvを導入する為にはCPAN/brew/gitを使う方法がありますが, 今回はgitを使って入れてみます. ただ特徴にも書いてあるとおり, どの方法を使うにせよインストールはとても簡単です
☆plenv☆ 〜 brand newperl5 installation management tool♪ 〜 Hi, I implemented brand newperl5 installation management tool named plenv. from rbenv plenv is inspired from rbenv, fromruby world. rbenv provides a missing feature inperlbrew,it can use .ruby-version file to manage project localperl module. Use .perl-version!! With plenv, when you put a .perl-version file to ~/dev/MyProj/.perl-version
あけましておめでとうございます。今年もよろしくお願いします。 helm-perldocはperldocをEmacsから使うための helm拡張です。perl-completionに同様の機能があるのですが、それの helm版です。 機能を分割してメンテナンスをしやすくというような意図も個人的に ですが、あります。 リポジトリ syohex/emacs-helm-perldoc ·GitHub Screenshot M-x helm-perldocを実行した際の screenshotです。 現在のファイルで importしているモジュールとそうでないものの helm source分けています。 設定 helm-perldoc:setup関数を事前に呼び出しておく必要があります。 (add-hook 'cperl-mode-hook 'helm-perldoc:setup) 現状インス
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く