perl
こんにちは。id:moznionと申します。Hachioji.pmというIT技術コミュニティに所属しています。本記事はPerl Advent Calendar 2020の記事として記述されています。前日の記事は@mihyaeru21さんのGitHub Actions で Perl を動かすときのテンプレートでした。 Ha…
Perl の話です.metacpan.orgEmail::MIME::ContentType 1.023 (なお本バージョンは TRIAL Release となっています) 以降から build_content_type と build_content_disposition という関数が追加されています.それぞれ名前の通り Content-Type と Content-D…
[2018-12-05 追記] ビルド済みのLayerを公開しましたので,そちらを使うと便利です. See also: http://moznion.hatenablog.jp/entry/2018/12/05/211523 [追記ここまで]先日のre:InventでCustom AWS Lambda Runtimesが発表され*1,これはつまり任意の言語でA…
なんと2018年の記事です.皆様無事明けられておりますでしょうか.さてYAML::XSには2017年に色々と変更が入り,実用するにあたり非常に便利な機能が色々と導入されました (具体的に言うと,$YAML::XS::LoadBlessedと$YAML::XS::Booleanです).また安定化が図…
Perl5の話題です. JSON::XSを用いて,JSON StringをPerlのHashRefにデシリアライズする時にtrueとfalseの扱いを変えたいという話です.デフォルト状態でJSON::XSを用いてデシリアライズすると, true は Types::Serialiser::true すなわち JSON::PP::Boolea…
Perl5の話題です.List::Haystackというものを書きました.CPANにもアップロードしています. 経緯としては以下.Perl,immutableな感じで,List (Array) 中から要素をfindしたり,出現回数を取るモジュールって存在しているんでしたっけ— パブリックイメー…
sub func { return 100; } みたいなサブルーチンがあった時に, say(func - 99); みたいな感じで呼び出すと,パッと見 1 が出力されそうに見えるが,実際は 100 が出力される. これは - 99 が func の引数として解釈されて食われるためである. B::Deparse …
表題の通りです.Perl5の話です.CPANにもあげてあります.https://metacpan.org/pod/Test::Fluent::Logger何をするモジュールかというと,useするだけでFluent::Loggerのpost及びpost_with_timeの内容をインターセプトして,本来送るべき宛先には送らずに内…
話してきました.以下がスライドとなります.登録時にスライド字幕を誤って「英語」にしてしまったばかりに英語スライドとなっております. 「画像がヤベえ!!」とか言われたんですが,まあこれで発表したんだし公開するスライドの画像を修正するのも違うよ…
[追記] (旧タイトル) Perl::Build (plenv) で stableperl が利用できるようになりました & stableperl の話色々あって方法が変わったので内容を修正します Perl::Build (plenv) で stableperl が利用できるようになりました & stableperl の話Perl::Build 及…
タイトルが適当すぎて何を言っているのかわからないと思いますが,まあそういう事がごくごく稀にあります.結論から言うとヒアドキュメント使えば良いです.以下の様な文字列を考えた時, my $string = '\n\\'; これを1文字ずつ処理しようとすると, say $_ …
https://metacpan.org/pod/Regexp::Lexer https://github.com/moznion/Regexp-Lexer Perlの正規表現を解析したいなー,と思った時にまず目につくのはRegexp::Parserだと思うのですが,このモジュールは解釈できないメタ文字や構文が多い為,実用にあたっては…
基本的にExcel::Writer::XLSX使うときは my $workbook = Excel::Writer::XLSX->new('yabai.xlsx'); my $worksheet = $workbook->add_worksheet(); ... みたいな感じで使うと思うんですが,素朴にこれでやっていこうとするとExcelの行数が増えた時にメモリを…
YAPC::Asia Tokyo 2014に参加致しました.例年はgihyo.jpのリポータという事で参加していたのですが,今年は僕の怠慢でリポータではなく,初の一般参加でした.とはいえ, YAPC::Asia Tokyo 2014でPerl::Lintについて喋りました - その手の平は尻もつかめる…
タイトルのとおりです. スライドは以下です. もうちょい詳しく話す予定だったんですが,冒頭のライブリリースに失敗するなどして出鼻をくじかれテンパってしまいました…… ちょっと詳しい話をすると, ポリシー周り 各ポリシーがトークンを受け取って,それ…
おわび Perl::Lint出来てません 本題 明日8月28日(木)から3日間に渡ってアジア最大のPerlのカンファレンスであるところのYAPC::Asia Tokyo 2014が開催されますね! 楽しみですね! 夜も眠れないですね! さて,そのYAPC::AsiaでわたくしPerl::Lintという開発…
このPerlコード実行するとSIGABRT発生するんだけど,これなんとかtrapできないのかな https://t.co/HeB6uvrl5z— Lint it (@moznion) 2014, 8月 17 supervisord使ってても,アプリで使ってるXSライブラリがABRTを吐いたらアプリごと死んでついには生き返らな…
(またしても日本語は下にあります / Japanese follows English) I published “Perl::Lint Playground”. http://perl-lint.moznion.net/ You can try feature of Perl::Lint easier on this playground. However this and Perl::Lint have not been completed…
(日本語は下にあります / Japanese follows English) I've just released Perl::Lint as underdevelopment. https://metacpan.org/release/MOZNION/Perl-Lint-0.01_01 Development of Perl::Lint is in progress, but I need feedback about this module. Th…
Perlの話です.が,先読みの辺りはどの言語でも共通なのでは,という感じです. 追記 なんか先読み関係ない感じになってるのでコメント見ると良いです.この記事の情報は誤っているので後で書き直す. ここから先は読まなくても良い さて,配列を走査するよ…
Time::SecondsのONE_MONTHとONE_YEARを使う場合,本当にその方法で良いのかよく考えたほうが良いと思います.バグが出る可能性が高い気がします.例えば以下の様な場合 use Time::Piece; use Time::Seconds; my $tp = localtime->strptime("2014-04", "%Y-%m…
皆さん,Perlのアプリケーションのログを出力したい時はLog::Minimalをご利用のことと存じます.非常に便利でグレートなモジュールなので僕も毎度使っております. さて,そのLog::Minimalですが,ログの出力をカスタムしたい時には$Log::Minimal::COLORや$L…
https://metacpan.org/pod/Parse::KeyValue::Shellish https://github.com/moznion/Parse-KeyValue-Shellishfoo=barだとかhoge=(fuga piyo)みたいな,いわゆるshell的なkey-valueを解釈する必要があったので書きました.shell的key-valueの文字列を解釈してh…
(日本語は英語の後にあります) I released Perl::PrereqScanner::Lite.https://github.com/moznion/Perl-PrereqScanner-Lite https://metacpan.org/release/Perl-PrereqScanner-Lite This module is the fast edition of Perl::PrereqScanner. Perl::PrereqS…
長い名前だ!!! そしてマニアック. https://metacpan.org/release/App-GitHubWebhooks2Ikachan https://github.com/moznion/App-GitHubWebhooks2Ikachan これは何 GitHubのWebhooksを受け取って,いい感じにしてIkachanに投げる君です. 現状,issues,pu…
文字列中にエスケープされていないダブルクォートがあった時に,例えば文字列evalしようとするとずっこける事があります.以下の様な感じ. なぜ失敗するかというと,eval "$str"がeval "hel"lo"という風に評価されてしまうからなんですね.これではlo"がinv…
Yokohama.pm #10に参加して参りました. Yokohama.pmヤバくて,無限にビールは飲めるわ有限に食事はできるわ,加えて学びを得られるわで最高のイベントと言っても過言ではない感じでした.KAYAC社はすごい. さて,詳細なレポートなどは他の参加者の方が素晴…
http://blog.64p.org/entry/2014/02/17/192612Localizerと言うのはYet Another Framework for Localizationのことで,国際化対応のための新しいフレームワークです.インタフェースが従来のものよりイカしていて良いと思います. Gettextのコンパイラの実装…
第一部 まず,id:amagitakayosiさんのブログ記事に関しまして. http://amagitakayosi.hatenablog.com/entry/2014/01/31/174915これの結果がおかしいのは,普通に関数で呼び出すべき所をクラスメソッドみたいな感じで呼んでいる為です.これではclassがdiges…
メモ書き程度です. 例えば,aaafoobbbbarcccfoodddみたいな文字列があった時に,fooとbarにマッチしない文字列が欲しい時には以下のように書くと良い. $str =~ m/(.*?)(?:foo|bar)/g; 実行すると以下のような値が得られる. $VAR1 = 'aaa'; $VAR2 = 'bbb';…