Perl

PerlにおけるGraphQLライブラリのまとめ

リッチなフロントエンドを開発しているとGraphQLを使いたくなるときがあり、さらにそのバックエンドをPerlで実装したくなるときもあるでしょう。 このエントリではPerlでGraphQL開発をしたい時に使える2023/02/24現在のPerlのGraphQL周りのライブラリ事情に…

Perlでスマートに配列からランダムで特定個数の値を取得する

TL;DR use List::Util qw(sample); my @array = (1..100); # 3個ランダムでとりだす my @random_pickup = sample 3, @array; 人間生きていると配列の中身からランダムにn個取得したいときがあります。Perl書いているときもありますね。 よくある方法は次のよ…

2022年、CPAN(Perlの)モジュールのメンテナを引き継ぐ活動を始めた件

これははてなエンジニアアドベントカレンダー2022 42日目の記事です。 昨日は id:k-murakami0609 さんの 過去に所属してたチームに転生したら導入したいもの でした。 はてなのノベルチームで日常的に使っている便利グッズ最高ですね!! みなさんもノベルチー…

git.ioは非推奨(read only)になってしまったので注意する必要がありそう

表題が全てシリーズです。(シリーズとは) 完全にノーマークだったのですが、GitHubが提供していた短縮URLサービスのgit.ioが4月27日を持ってread onlyに移行しています。 2022-04-27 Update: While the git.io url redirection service is read-only and use…

いい感じにuseするのを助けてくれるApp::perlimportsのご紹介

これはPerlアドベントカレンダー2021の12日目の記事です。 昨日はshogo82148さんで、Perl 5.35.5 の iterating over multiple values at a time を先取りでした。 今回はPerlでもいい感じのモジュールのImportをしてくれるApp::perlimportsの紹介です。 App:…

PerlのXSをlldbでデバッグする

興味が湧いたのでPerlのC拡張であるXS言語で書かれているList::Utilを読んでいるのだけど、C言語チックなものを読むときはやはりデバッガが使いたい。 XSも結局C言語なのでgdb/lldbでデバッグできないかなと思ってググったところ、できそうなエントリを見つ…

perlのmapは2引数渡せる

というわけで驚きの事実です。この2行は同じhashrefを返します。 my $hoge = [map { id => $_, piyo => "bar" }, @hoge]; my $hoge = [map { {id => $_, piyo => "bar"} } @hoge]; これはmapの後ろの{はmapの開始地点の意味と、hashrefのコンストラクタとし…

プログラミング言語Raku(旧:Perl6)のオンリーカンファレンスが開催されるらしい

インターネット見ていたら発見してしまったのですが、ついにプログラミング言語Raku(旧 Perl6)のオンリーカンファレンスが開催されるようです。 conf.raku.org 今までのRakuはPerlのカンファレンスであるYAPCやPerlConでPerl5とセットで話される機会がほとん…

git commitしたら別のブランチに自動でcherry-pickするPerlスクリプトかいた

今は開発環境でM1 macを使っているのだけれど、色々あってプルリクを送りたいブランチと自分の手元のブランチが異なっているケースがある。ようはM1専用のcommitを積んでいるが、これをプルリクに含めたくないケース。 最近はgit慣れてないのもあって、commi…

サブルーチンのエイリアスを型グロブで作る

知らなかったのでメモ。 #!/usr/bin/env perl use strict; use warnings; sub hoge { print "hello\n"; } *foo = \&hoge; foo(); この例題を実行すると元気にhelloと表示される。 これは型グロブを使ってhogeサブルーチンのエイリアス的にfooを登録している…

hg webを開くコマンドのlinux対応

ubutu引っ越しシリーズ。 個人的に使っていたツール周りをlinuxに移植している。 anatofuz.hatenablog.com このエントリで紹介していた個人ツールのhg-browseをlinuxに対応させた。 といっても、macOSのopenコマンドをxdg-openに書き換えればいいだけなので…

最近awesome-perlに追加されたモジュールを眺める

これはPerlアドベントカレンダー23日目の記事です。 昨日はnanto_viさんで「Perl の wantarray 関数で返り値の扱いを確認する」でした。 さて15日目の記事でmoznionさんの方で話があったawesome-perlですが、ここ数週間でかなりプルリクが飛んできていました…

mac OS BigSurでplenvを使いたい俺たちは

TL;DR $cd ~/.plenv/plugins/perl-build; git pull PerlのBigSur問題 plenvはPerlのソースコードをローカルに持ってきて、ビルドを行う仕組みになっています。 BigSur以前のmacOSでは正常にビルドができましたが、BigSurでは次のようなエラーが出てしまいビ…

WEB+DB PRESS vol.117 「Perl Hackers Hub」 第62回「Perl歴史散策」に寄稿しました

というわけで一度投稿してみたかったエントリです!!! 2020年6月24日(水)に発売される WEB+DB Press Vol.117 の Perl Hackers Hub に「Perl歴史散策」を書かせていただきました!!みんな買ってくれ!!!!!! 沖縄だと多分無いですが大手書店では6月16日からテスト…

PerlCon 2019に参加してきました!!!

こんにちは! id:anatofuzです。 皆さんのおかげで、ラトビアのリガで開催されたPerlCon2019に参加し、無事帰ってくる事ができました!!! 報告が遅れてしまいすいません という訳でこのブログではPerlConの参加から帰国までのイベントレポートを乗せていこう…

PerlConの渡航費のカンパのお願い

追記(2019/07/08) カンパのご協力ありがとうございました!!! 目標金額を達成していましたので一旦停止致します!!! 皆さんありがとうございました!!!!!!!!!!!! こんにちは id:anatofuzです。 8月の7-9日の三日間にラドビアのリガでPerlConというPerlの国際カ…

mac osでPerlのビルドでld関連で死ぬ時

趣味はPerlのビルドなので、plenv経由でPerl5.28.1を入れようとしたところ以下のようなエラーが発生しました。 ./miniperl -Ilib make_ext.pl DynaLoader.o MAKE="/Library/Developer/CommandLineTools/usr/bin/make" LIBPERL_A=libperl.a LINKTYPE=static C…

YAPC::Tokyo 2019に「レガシーPerlビルド 〜現代に蘇るPerl[1..5].0とPerl6〜」 で登壇します

皆様こんにちは.最近はMoarVMと格闘している id:anatofuzです. YAPC::Tokyoに応募していたトークが通り,登壇することになりました. yapcjapan.org タイトルは「レガシーPerlビルド 〜現代に蘇るPerl[1..5].0とPerl6〜」です. このトークでは以前Roppong…

ドキドキPerl1.0探検隊

はじめに こんにちはid:anatofuzです. これはPerl Advent Calendar 2018 1日目の記事です. なぜ僕が初日を担当しているかというと以下のような経緯です. Perlアドベントカレンダーday 2,3,4,5が空いているのでそれぞれPerl2,Perl3,Perl4,Perl5.0を動かす…

Roppongi.pm #1 でトークしてきました

こんにちは! id:anatofuz です.今日はid:codehexさんとid:magnoliakさんにお誘いいただいてRoppongi.pm#1に参加してきました. 以前オープンソースカンファレンス沖縄でもトークをした事はあったのですが,あの時は河野先生と共同だったので一人でのトーク…

Perl6と多言語の起動時間の比較(Perl5,Ruby,Python,Java,Perl6 on MoarVM,Perl6 on JVM)

追記(2018/07/19) 処理速度ではなくてプログラムの起動時間というご指摘を受けたのでタイトルを修正しました 純粋な処理時間の測定は別途行おうと思います.後半の感想の部分は読み流して頂けると 目的 今回は以前のエントリで書いたようなPerl6の正規表現…

Okinawa.pm#6 でPerl1.0にまつわるLTをしました

okinawapm.connpass.com という訳でLTです いつも通り飲み会の後半でLTをするというスタイルで、前々日にリバースエンジニアリングをした事を微塵も感じさせないLTが出来たと思います。楽しかった。 内容 おおよそこのリポジトリのPerl1.0を利用した話です。…

LINE変態コンシェルジュのPerl実装を作った

今すぐ登録 元ネタ review-of-my-life.blogspot.jp 構成 という訳で作ったコードはこちらとなっております。 当初Dockerで動かそうとしていたのでレポジトリ名に名残があります。 github.com 今回はPlack + LINE::Bot::API + Werbservice::YDMMの大まかに3つ…

RubyのArray.new(5,'default')っぽいことをPerlでする試み

始まり Rubyを勉強し始めていて、Rubyで Array.new(5,'default') などとすると、要素数5の配列が生成されるが、これら1つ1つの要素は同じオブジェクトIDを所持している為 a[0].upcase! などとすると全ての要素が変更される事を知った。 普段書いているのはPe…

cpmでinstallしたCPANモジュールの個人的パス通し法

cpmでinstallしたPerlモジュールを使おうという時の個人的な技です 追記 追記:cpmの作者のid:shoichikaji さんから 2か3がおすすめ との情報を頂きました。ありがとうございます。 1 carton exec わかりやすく無難な方法だと思っています。 carton exec -- p…

WebService::YDMMリリースした

どうもこんにちは。id:anatofuzです。 anatofuz.hatenablog.com このエントリから数ヶ月…ついに本日リリースしました!! metacpan.org github.com 作成にあたっては id:papixさんに助言を頂いたりなど、皆さんに助けられてようやく…!という形です。 Acmeモジ…

もう1つのDMMクライアントWebService::YDMMについて(予告)

これはPerl Advent Calendar 2017 15日目のエントリです。 広告 YAPC::Okinawaは現在カンファレンス参加チケット・トークプロポーザルを絶賛募集中です!!!是非ご応募ください!!! yapcjapan.org さて今回のエントリですが,実際にAPIクライアントが完成…とま…

Perlと入学式とAnaTofuZ

これは Perl入学式アドベントカレンダー3日目の記事です。 こんにちは id:anatofuz です。ようやく寒くなってきた沖縄から失礼します。 そういえば去年もアドベントカレンダーに参加していて,あれから1年経ったのか…と思っています. あれから1年か…と思って…

Acme大全2017に乗せていただいた

Acme界隈の聖書こと「Acme大全2017」の物理本を友人経由でついに入手したのですが 今までCPANにアップしていた拙作Acmeモジュール3作品について解説をして頂きました. Acmeが好きでPerlをやっているぞみたいな所があるので,本当に興奮というか光栄で嬉しい…

「すぐわかるオブジェクト指向Perl」読んだ

Acmeモジュール書いていると良くPerlにおけるオブジェクト指向について触れるのですが そのコアな部分について解説している本です. すぐわかる オブジェクト指向 Perl作者: 深沢千尋出版社/メーカー: 技術評論社発売日: 2008/06/20メディア: 大型本購入: 12…