タグ

Perlに関するKGAのブックマーク (383)

  • Perl5のサブルーチン呼び出し時に二項演算子を期待していたら単項演算子の引数として認識されてしまう - その手の平は尻もつかめるさ

    sub func { return 100; } みたいなサブルーチンがあった時に, say(func - 99); みたいな感じで呼び出すと,パッと見 1 が出力されそうに見えるが,実際は 100 が出力される. これは - 99 が func の引数として解釈されてわれるためである. B::Deparse するとわかりやすい. $ perl -MO=Deparse func.pl sub func { use warnings; use strict; use feature 'say'; return 100; } use warnings; use strict; use feature 'say'; say func(-99); func.pl syntax OKここから,二項演算子としての振る舞いを期待していた - が 99 と結合して単項演算子として扱われ, -99 が引数

    Perl5のサブルーチン呼び出し時に二項演算子を期待していたら単項演算子の引数として認識されてしまう - その手の平は尻もつかめるさ
    KGA
    KGA 2017/06/17
  • Perl 5.28 new features

    Perl 5.28 introduces several new features including auto referencing of subroutine arguments, fancier signatures that allow type constraints, distributed map and grep functions to parallelize work, an upgraded safe module, three-state test outcomes in TAP, close enough comparators, new array manipulation operators, upgradable assignment with =^, better support for Git conflicts, and improved diagn

    Perl 5.28 new features
    KGA
    KGA 2016/09/06
  • ネットの神童、中学中退、性転換… 異色の経歴誇る唐鳳氏、入閣へ/台湾 - フォーカス台湾

    インターネット起業家の唐鳳氏が史上最年少の35歳で行政院(内閣)政務委員(無任所大臣に相当)に就任することが25日、明らかになった。行政院の童振源報道官が発表した。唐氏は「インターネットの神童」「パソコンの天才」という名声を誇る一方で、中学中退や性転換経験など異色の経歴の持ち主。「公共の仕事に全力投球できるようになるのは幸運」と今後に意欲をみせている。

    ネットの神童、中学中退、性転換… 異色の経歴誇る唐鳳氏、入閣へ/台湾 - フォーカス台湾
    KGA
    KGA 2016/08/28
  • 本気で Server::Starter を fatpack する方法 - tokuhirom's blog

    イチから作るには以下のようにせよ。 curl -o cpanm https://raw.githubusercontent.com/miyagawa/cpanminus/master/cpanm /usr/bin/perl cpanm -n -L tools App::FatPacker::Simple Server::Starter /usr/bin/perl -Mlib=tools/lib/perl5 cpanm -n -L local Server::Starter /usr/bin/perl -Mlib=tools/lib/perl5 ./tools/bin/fatpack-simple --output=start_server local/bin/start_server 一旦 tools/ 以下にインストールしているのがポイント。Server::Starter のビルド時依存

    KGA
    KGA 2016/06/16
  • Ukigumo入門 ― 2014年スタイル - その手の平は尻もつかめるさ

    とりあえずデモサイトを示しますので適当に見て下さい. http://ukigumo.moznion.net/ さて今回はゆるふわCIシステムであるところのUkigumoのナウいスタイルについて説明しようと思います. ここ最近ではUkigumo::AgentというAgentサーバが存在しており,これを使うとまあ便利なんですけれども,ドキュメントが少ない為か *1 あまり利用されている事例を見かけませんので,それらも踏まえて解説したい感じです. まずUkigumoとは何か CIシステム.Perl製. Perl製だが,もちろん他言語のプロジェクトでも使える. Travisのようにサービスとして提供されている感じではなく,自前でインストールして使う. 多分,感覚としてはJenkinsに近いと思うが,そこまで複雑ではなく,シンプル. 基的に,「テストの実行及びその結果の取得」と「テスト結果の保存」

    Ukigumo入門 ― 2014年スタイル - その手の平は尻もつかめるさ
  • 普通のデーモンを 1) Server::Starterでホットデプロイ+ 2) slow-restart対応にする - Qiita

    序章 最近筆者があるシステム上の非同期ワーカーに対して作業していたところ、新しいコードをデプロイしてこのプロセス達を再起動すると全てのワーカーが同じタイミングで停止→再起動してしまうのでアラートがちらほら流れてきました。クリティカルなものではないのですが、アラートはうざいです。さらに開発機では何回か失敗もしたのですが、その失敗のせいでワーカーが起動に失敗することもありました。その間は当然ワーカー機能は止まったままです。 アラートはできればみたくないのです。さらに万が一新しいコードが起動に失敗した場合でも前の世代が動いていればこのあたりの心配をする必要がなくなります自分がそのあたりに手を入れるタイミングでServer::Starterをかまして対処してしまうことにしました。 元のワーカー まず前提として、このワーカー達は以下のような形で「実行するワーカーのコマンド名(実際はクラス名)」と「い

    普通のデーモンを 1) Server::Starterでホットデプロイ+ 2) slow-restart対応にする - Qiita
    KGA
    KGA 2013/12/04
  • attributes - Practice of Programming

    てきとーなんで信用しないでください。アトリビュートについて、調べてみました。 暇ができたら、perldoc attributesでも訳します。 アトリビュートというのは、 sub index : Private{ ... }というように、サブルーチンの横にくっついている、: の横のもの、 上の例では、Privateになります。 Catalystでよく使われているのですが、Catalystでは、Private とか、Global とか、Regexとか色々あります。 何もしない状態だと、組み込みのアトリビュート以外のものを使うと、エラーになってしまいます。 組み込みのアトリビュートというのは、lvalue、method、locked などなど。 で、どうやったら、Catalystみたいなのできるのかなぁ、と調べてみました。 ちなみに、ここに書いているのは、package-specifiedなア

    attributes - Practice of Programming
    KGA
    KGA 2013/10/10
  • LL脳な人でもこれぐらいは覚えておくとうれしいgdbのつかいかた。または猫でもわかるgdb講座 - tokuhirom's blog

    LLつかってても「ばすえらーになるー」っていう状況ってたまにあるわけですが、LL しか普段つかわないゆとりは、ここでお手あげになってしまったりすることがままあります。 で、「ばすえらーになるんですが」ってときの最低限これだけはやってみたらどうか、という話。「えー、わたし gdb とかわかんないしー」とかいってる人でもこれぐらいならできるんじゃないかなーっと。 perl t/00_load.tというコマンドで segv するという場合、gdb をつかって % gdb --args perl t/00_load.tとうつ。 すると、以下のようにプロンプトがでるので、"run" とうつ。これでスクリプトがはしりはじめる。 % gdb --args perl t/00_load.t GNU gdb (GDB) 7.0-ubuntu Copyright (C) 2009 Free Software

    KGA
    KGA 2013/07/31
  • Minilla を用いた Perl モジュールの作り方 - tokuhirom's blog

    http://shanon-tech.blogspot.jp/2013/05/perl.html Perl モジュールの作り方、2013年においては Authoring tool をつかって作るのがよいです。具体的には Minilla でつくるのがオススメであります。 perlbrew なり plenv なりで perl をいれたあとは、 % cpanm Minillaとして Minilla をインストールします。 % minil new Fooとすると、Foo.pm のスケルトンができあがります。作者の名前などは ~/.gitconfig などから自動的にさがしてきますので、設定不要です。 できあがったディレクトリは以下のような形になっています。 Foo ├── Build.PL ├── Changes ├── cpanfile ├── lib │   └── Foo.pm ├── LI

    KGA
    KGA 2013/05/14
  • Bcc

    KGA
    KGA 2013/04/10
    Email::Sender での bcc の扱い。
  • Email::MIMEとEmail::Sender::Simpleを使ってメールをbccに送る - weblog of key_amb

    単純にBccヘッダにアドレスを追加しても、所望の機能は達成されない。 Email::Sender::Manualに、どうやってBcc送信をやったらいいか解説がある。 私の場合は次のようにした。 my $email = Email::MIME->create( header => [ From => $from, To => join(',', @to), Subject => $subject, ], attributes => +{ content_type => 'text/plain', charset => 'ISO-2022-JP', encoding => '7bit', }, body => $body, ); # bccが指定されたら個別にメール送信 for my $_bcc (@bcc) { sendmail($email, +{ to => $_bcc }); } #

    Email::MIMEとEmail::Sender::Simpleを使ってメールをbccに送る - weblog of key_amb
    KGA
    KGA 2013/04/10
  • 最近使ってるモジュールの話 - Hokkaido.pm#9

    自己紹介 twitter @xaicron works :DeNA CPAN https://metacpan.org/author/XAICRON 免責 日発表する内容は、個人的な考えや意見であり、 所属する組織、会社とは一切関係ありません。 免責 日発表する内容は、個人的な考えや意見であり、 所属する組織、会社とは一切関係ありません。 また、スピリチュアルトークはできません。 というわけで 今日は、最近使ってるモジュールの話とかを中心にまったりやっていこうと思います。 いきなり題に入る前に 自分がどんなふうに使うモジュールを選んでいるのか CPAN モジュールの選定基準 2008年ごろ書かれたいい記事があります。 CPANソムリエになる方法 ざっくりまとめると 最終更新日時がふるいモジュールは危険 テストが超絶少ないモジュールは危険 バグレポート溜まってるモジュールは危険 って感

    KGA
    KGA 2013/03/26
  • Plack Performance Tips - mount() and query_parameters() : D-7 <altijd in beweging>

    すごいヘビーな負荷を受けているPSGIアプリケーションで「なんでこれで負荷があがるの?」的な現象があったので二つほどTipを。ちなみにこれは 2013/03/06時点での話なので、もしこれをあなたが大分将来に読んでいるのなら、状況に変更がないかちゃんと確認すること! まずこのお話の前提:mod_perlなアプリをPSGIに移行したかった。アプリはmod_perlハンドラで書かれているので、Apache::RequestをPlack::Requestに書き換えたり、ハンドラ部分をオブジェクトにしてキレイにするくらいで、基的な構造は何も変えてない(←ここポイント)。あとはApache側とか設定をもりもりいじって、PSGIファイルを書いて、Starletでデプロイして、パフォーマンスが30%くらい悪くなった。さて、犯人は誰でしょう? まずアプリケーションを組む側が「やっちまったなぁ?」な件:P

    Plack Performance Tips - mount() and query_parameters() : D-7 <altijd in beweging>
    KGA
    KGA 2013/03/08
  • おそらくはそれさえも平凡な日々: CPANモジュールのパッケージングの歴史

    最近同僚が次々とCPAN Authorになってて良い流れだなーとか思っています。 ただ、CPANへのモジュールの上げ方がわからないとか、M::Iを使えばいいのか M::Bを使えばいいのか、それらがそもそも何やってるのか分からないという話も 聞くので、僕自身もその辺の知識を整理してアップデートしました。 とりあえず、今はModule::Buildを使っておけば良いんじゃないかと 思っていますが、そこに至る歴史的経緯をまとめてみます。 大体、以下に書いてあることに加えて、最近の動きを書いています。 Module::Build:MakeMakerの後継者を目指して PerlでCPAN形式のモジュールを配布する場合は、Makefile.PLなりBuild.PLなりを モジュール作者が用意して、それがインストールに必要なファイル類を自動生成 するという流れになっています。 既存の雛形を使うと色々ファ

    KGA
    KGA 2013/02/13
  • jperl と jcode.pl から卒業する - はちゅにっき

    何をいまさらな話題ですが、文字コードが EUC-JP が主流だった時代に作られた jperl と jcode.pl に依存しているレガシーなシステムをモダンな Perl に書き換える場合には、Encode に加えて Encode::EUCJPMS を使うと簡単でした。 というメモ。 Encode-EUCJPMS http://search.cpan.org/~naruse/Encode-EUCJPMS/ これで機種依存文字を恐れず処理することができました。 Unicode にさえなってしまえば後はやり放題で、日語の「全角←→半角」変換などは Lingua::JA::Regular::Unicode が便利でした。 Lingua-JA-Regular-Unicode http://search.cpan.org/~tokuhirom/Lingua-JA-Regular-Unicode/ u

    jperl と jcode.pl から卒業する - はちゅにっき
    KGA
    KGA 2013/01/15
  • Web アプリケーションのデプロイについての考察 - Articles Advent Calendar 2012 Casual

    Web Application をデプロイする際に、carton をつかうという方法もありますが、もっとゆるふわでいいんじゃないかなーとおもうので、もっとゆるふわにやる方法について考えてみました。 carton について carton は以下のようなことをやってくれます。 * バージョンの固定 * インストール * モジュールパスのロード carton は carton.lock というファイルにインストールしたバージョンを記録することによって、いいかんじにバージョンを固定できて、複数の環境でアプリをうごかすときに便利です。 が、しかし carton.lock は JSON ファイルなので、複数人が同時に作業しているときに conflict したりしてメンドイ! という噂もききます。実際、carton.lock をつかうと conflict がダルすぎるので carton.lock を .

    Web アプリケーションのデプロイについての考察 - Articles Advent Calendar 2012 Casual
    KGA
    KGA 2012/12/17
  • vim で Perl を書くときのための tips - Articles Advent Calendar 2012 Casual

    @tokuhirom です。Perlを書き始めて8年ほど経ち、Perlで何か作る際の効率化の手法がそれなりに確立してきたので、それを思いつくままに紹介しようと思います。主に多言語から来てPerlにほどんど慣れてない方などを想定しています。 僕の秘伝のタレ的な .vimrc の中から perl に関係ある部分だけをぬきだしてお教えしましょう。すべて設定すればだいぶ快適になりそうです。とかかいてると教えるのもったいない気分になってきた。 ぼくの環境 僕は vim の環境として以下のようなものを指定しています。mattn さんからは DIS られがちです。 neosnippet unite.vim pathogen vim-perl プロジェクトの成果物をつかう https://github.com/vim-perl/vim-perl なんか最近、perl-vim から vim-perl にかわ

    vim で Perl を書くときのための tips - Articles Advent Calendar 2012 Casual
    KGA
    KGA 2012/12/13
  • Graphviz::DSL - 「逆に考えるだ, DOTファイルっぽく書いちゃってもいいさと」 - Articles Advent Calendar 2012 Hacker

    前置き こんにちは。syohexです。好きな寿司ネタは鯖というかバッテラです。今回は拙作の Graphviz::DSLというモジュールを紹介させていただきます。 Graphviz::DSLは Ruby Gemの Gvizに影響され作成したモジュールです。 既存の Graphvizモジュールは OOインタフェースが中心で '$graph->add_node'のようなメソッドを使いグラフを構築していくものが主でした。しかし個人的に OOインタフェースの場合, 最終的なグラフの形状が把握しづらいという印象を持っていました. 'add_node'などのコードを追い, 自分の頭の中でグラフの形状を考える必要があるためと思います. ところが Gvizはそうではなく, DSLを用い, DOTファイルを直接書く感覚に近いものでした. 今までの Graphvizインタフェースは DOTを避けすぎていたように

    Graphviz::DSL - 「逆に考えるだ, DOTファイルっぽく書いちゃってもいいさと」 - Articles Advent Calendar 2012 Hacker
    KGA
    KGA 2012/12/05
  • perlbrew+Carton+Amon2+Test::mysqldみたいな - As a Futurist...

    モダンな感じで perl でウェブアプリ作りたいなーと思ってほげほげしてます。メモ書き。 最近の流行りでは、system perl なんてもう使わないわけで、自分で perl を make して入れるもの。それを簡単に管理できるのがperlbrew。で、アプリ毎に perl を入れてもいいなぁとは思ったんですが、さすがにそこまで仰々しくしたくはない。でも、CPAN モジュールについてはアプリ毎に依存が無いようにしたい(あるアプリが変にバージョンアップしちゃって他が動かないとか嫌)。 どうするのがいいかなーと色々考えたんですが、そういえば miyagawa さんのCartonというのが、依存関係やバージョンも含めて CPAN モジュール管理できるということでこれをアプリ毎に使うのが正統だろうなと思ったので使ってみた。 まずは perlbrew でインストール これは説明の通り。 $ curl

    perlbrew+Carton+Amon2+Test::mysqldみたいな - As a Futurist...
  • http://dl.dropbox.com/u/224433/YAPC2012/index.html