タグ

perlに関するstealthinuのブックマーク (145)

  • はじめに:ある Perl 屋の副業の物語 - OS 添付の Perl で CPAN モジュールを楽に管理するには?

    はじめに この記事は Perl Advent Calendar 2022 の 1日目の記事です。 ある Perl 屋の副業の物語 この物語は実際のお仕事を元につくられたフィクションです。 あなたは時々、副業Perl 関連の仕事を請けている。 最近は Perl を自ら進んで書く人は減ってしまったが、競争も少ない分買い叩かれることもなく、 悪くない仕事だと思っている。 今回の仕事の内容は、顧客に依頼されたメールサーバーに Perl で書かれたプログラムを導入して設定することだ。導入したいプログラムは authentication_milter、初めて知ったプログラムだ。これは CPAN にも Mail::Milter::Authentication として登録されている。対象となるメールサーバーの OS は CentOS Stream 8 だが、このモジュールの rpm はどこにも無いよう

    stealthinu
    stealthinu 2022/12/01
    ディストリビューションで提供されてないツールをcpanで入れるときの「汚染」を防ぐため/usr/local/perl5以下をgit管理にして本来のディレクトリからシンボリックリンクする方法。これいいね。
  • Announcing Perl 7

    Announcing Perl 7 Jun 24, 2020 by brian d foy image credit: Darren Wood, “7”, on Flickr. This morning at The Perl Conference in the Cloud, Sawyer X announced that Perl has a new plan moving forward. Work on Perl 7 is already underway, but it’s not going to be a huge change in code or syntax. It’s Perl 5 with modern defaults and it sets the stage for bigger changes later. My latest book Preparing f

    Announcing Perl 7
    stealthinu
    stealthinu 2020/06/25
    Perl7は現行の5.32の別名と考えれば良さそうでPerl7として継続される。Perl6となるはずだったものはRakuという別の言語名となっている。
  • 名古屋で道に迷った話と喫茶店に行けなかった話(YAPC::Nagoya::Tiny 2019) - /var/lib/azumakuniyuki

    名古屋に行ってきました、名古屋、愛知県名古屋市。人生で二回目(たぶん)の名古屋、YAPC::Nagoya::Tiny 2019への参加です。 いつも通りダラダラ長い文章になる予定なので先にまとめを書いておくとYAPC楽しかった、関係者の皆さんありがとうございます、きしめんが美味しかった、名古屋城広い、次の開催は...!です。 YAPC参加運が無い そもそもYAPC参加運に恵まれない星の下に生まれたようで初参加のYAPC::Asia Tokyo 2010は、父親の葬儀(2010/10/13)が終わって翌々日(10/15)の開催でして。 翌年からはだいたい秋頃に開催されるYAPC::Asiaとかぶる感じで法要が入る、喪主なのでサボるわけにはいかずでYAPCに行けないことが多く、法要が一旦落ち着いてからはなんかうまいこと 納期とかぶる、納期直前の厳しい時期にかぶるでYAPC::Japanとなって

    名古屋で道に迷った話と喫茶店に行けなかった話(YAPC::Nagoya::Tiny 2019) - /var/lib/azumakuniyuki
    stealthinu
    stealthinu 2019/12/13
    来年のYAPCは京都でやるとのこと。あずまさんもスタッフでお手伝いされるらしい。
  • Perl 6、正式に「Raku」へ名称変更か | スラド デベロッパー

    Perl 6の名称を正式に「Raku」へ変更するというGitHubでの提案に対し、Perl生みの親のLarry Wall(TimToady)氏が支持を表明している(Larry Wall氏のコメント、 blogs.perl.orgの記事、 The Registerの記事)。 次世代Perlとして開発されていたPerl 6だが、正式リリース後もPerl 5の開発が進められており、「Perl」といった場合にPerl 5を指す状態が続いている。そのため、Perl 6の名前に「Perl」が入っているのはわかりにくいとして、8月からGitHubで名称変更が議論されていた。このスレッドでは「Raku (楽)」という日語について、勘違いも含めてちょっと面白い議論になっている。 もともと「Raku」という名前は昨年、Perl 6のエイリアスとして使えるもう一つの名前を付けてほしいというZoffix Zne

    stealthinu
    stealthinu 2019/10/15
    PerlがPerl6からRakuという名になるっぽい。うーん、普通にPerl6でよくないか?
  • Perlにおける設定ファイルを自分なりに比較してみた - amari3の日記

    Twitterで10日くらい前に、Perlから設定ファイルを扱う際に、どの形式を使うのがいいんだろう?みたいな感じなつぶやきをしていたら、フォロワーの方からリプライが付いたので、メジャーな設定ファイル(と思われる)をそれぞれ自分なりに比較検討してみたのでそのまとめ。 以下の3つの形式を比較検討。 ini形式 yaml形式 perl形式 ini/yaml形式のサンプルコードでは、CPANモジュールを使っているが、モジュールの選択基準はあまりなく、とりあえず仕様が小さそうくらいな感じのを選択。今回はあくまで設定ファイルに特化したいと考えている。 ini形式 Windowsでも割と一般的に見かける形式。mysqlの設定ファイルもこの形式。 設定ファイル例 % cat data.ini [site1] url = http://d.hatena.ne.jp/amari3 title = amari

    Perlにおける設定ファイルを自分なりに比較してみた - amari3の日記
    stealthinu
    stealthinu 2019/05/17
    Config::Tinyが入ってない環境だったのでどうしようかと思ってここの最後にあったperlのハッシュ形式で設定を書くというのを採用してみた。
  • LTSVログをパースする最強のワンライナー集 · DQNEO日記

    最初に結論 これ最強 cat accesslog | perl -F'\t' -nale '%h=map{split/:/,$_,2}@F;print"$h{time}\t$h{ua}"' なぜPerlワンライナーなのか? LTSVログを解析するには、Perlのワンライナーに限る。 なぜならPerlはほとんどのサーバにデフォルトで入ってるから。 Perl 5.8で動くワンライナーを覚えておけばどの環境でも使える。 「何にも依存しない」 これ最強。 基中のキホン まずは基形です。 これだけは絶対覚えてしまいましょう。 perl -nale 'print' % cat access_log | perl -nale 'print ' time:[22/Feb/2014:15:13:07 +0900] host:10.10.200.102 ident:- user:- method:GET

    LTSVログをパースする最強のワンライナー集 · DQNEO日記
    stealthinu
    stealthinu 2019/01/09
    DQNEOさんのLTSVパースの仕方。perlでワンライナー。どこでも使えるからと。
  • Perl の正規表現リテラル中の変数展開を読む

    Perl の正規表現リテラル中の変数展開では、文法上、 解釈にあいまいさが生じることがあります。 この文章では、Perl インタプリタのソースコードから、 実装上でどのようにあいまいさが解決されるのかを説明します。 更新履歴 2008-06-05: 公開 Perl の判断 Perl では、文字列リテラルや正規表現リテラルの中で変数展開を行えます。 use Test::More tests => 2; my $name = 'Alice'; $_ = "My name is $name"; is($_, 'My name is Alice', '$name として Alice が展開される'); s/$name/Bob/g; is($_, 'My name is Bob', 'Alice が Bob に置き換えられる'); しかし、正規表現リテラルのなかで配列の要素を展開する際には、 [ 〜

    stealthinu
    stealthinu 2018/03/28
    perlでなんで$hoge[1]と$hoge[001]で動作の違いが出るのこれでわかった。そしてこれは${hoge[1]}とブレース使うべきというのがよくわかった。シェルもそうだけどperlも気をつけよう。
  • https://github.com/hkoba/hktools/blob/master/ltsv2sql.pl

    stealthinu
    stealthinu 2018/02/27
    LTSVで出されたログとかをSQLにつっこんだりするためのツール。ログデータの解析こそSQLでゴリゴリできたほうが柔軟性高いじゃんという思想。
  • 説明のないとってもシンプルなサンプルプログラム集

    Simple Sand Samples プログラミング言語サンプル集 TOPへ Hello World!(各言語のTOP)(変換)エンディアン変換(例外)try~catchを使う(文字列)文字列を連結する(文字列)小文字->大文字 変換(文字列)大文字->小文字 変換(文字列)文字列の長さを得る(文字列)文字列長が0かどうか判定(文字列)文字列長が0以外かどうか判定(文字列)文字列を左右反転(文字列)10進文字列->数値 変換(文字列)数値->10進文字列 変換(文字列)16進文字列->数値 変換(文字列)数値->2進文字列 変換(文字列)文字列->文字コード 変換(文字列)文字列の一部を取り出す(文字列)文字列を分割する(文字列)一文字毎に分割する(文字列)分割文字列を結合する(文字列)インデックスを得る(リスト/配列)リスト/配列(リスト/配列)要素数(リスト/配列)末尾に要素を追加(

    stealthinu
    stealthinu 2017/12/28
    perlで配列のある添字以降を取得する場合「@F[3..$#F]」みたいに書けばいいのか。あー、長年使ってんのにこんなことも知らんかったとは…
  • perlモジュールのinstallにcpanmを使う - Perl - @OMAKASE

    当サイトのblogのエントリーで検索ワードが多いのはCPANなんですがこの古い記事はperl5.6時代に書いた記事(多分10年近く前だと思う)で今時のperl使いにお勧めできるものではありません。 2010年2月にあの miyagawa さんが書いた cpanminus が非常に素晴らしいので CPAN::shell を捨てて App-cpanminus を積極的に利用しましょう。 と言うことでcpanに関連して新しい記事を書いてみました。 CPAN::shell の欠点 設定が面倒 動作が遅い(cpanmと比較して) 多くのメモリが必要(制約のきついレンタルサーバで使うのは無理) 依存するモジュールが多い 基root権限が必要 cpanm の利点 一枚岩のプログラムで可搬性に優れる 高速で小メモリでも動作可能 pluginで拡張できる local::lib と組み合わせるとユーザーラン

    stealthinu
    stealthinu 2016/12/12
    今更ながら。毎回cpanmをこのページ見てインストールしてる。ansibleに書いておかないとな…
  • モジュールメンテナンスを通じて感じる最近のPerl - YAPC::Hokkaido 2016 // Speaker Deck

    モジュールメンテナンスを通じて感じる最近のPerl

    モジュールメンテナンスを通じて感じる最近のPerl - YAPC::Hokkaido 2016 // Speaker Deck
    stealthinu
    stealthinu 2016/12/12
    perlにかぎらずにオープンソースもののメンテナンス全般に関する知見だった… 自分も色々と感じるところがあった。
  • Sys::Syslogを使ってロギング - 百舌日記

    PerlでSyslogへの出力を行いたい時は、Sys::Syslogを使うと簡単に出力できます。 出力先のファイルは/etc/syslog.confにて設定を行います。以下を追加しました。local6というファシリティを利用する前提。syslogはlocal0からlocal7まで自由に設定できるようになっているので6というのは適宜変更してください。 local6.* /var/log/{ログファイル名}confを変更したときは、syslogdの再起動が必要です。 $ ps axuw | grep [s]yslogd $ kill -HUP {syslogdのpid}で再起動をします。 以下のようにログを出力します。 #!/usr/bin/perl use Sys::Syslog qw(:DEFAULT setlogsock); #Unixドメインソケットを通じて出力する setlogsoc

    Sys::Syslogを使ってロギング - 百舌日記
    stealthinu
    stealthinu 2016/09/28
    perlでsyslogに吐くにはSys::Syslogで
  • CGI::Fast

    stealthinu
    stealthinu 2016/07/13
    PerlをFastCGIで使うためのCGI::Fastモジュール.
  • 非エンジニアにこそ本っ当に読んでほしい技術書9冊 | みんなのスタンバイ

    stealthinu
    stealthinu 2016/02/26
    えええ!?Perlがすごい上位でびっくり。というかSwiftとObj-Cが低いのが不思議… あとアセンブラが最下位ってなんで??一番技術力必要だろうに。
  • Blogger

    Google のウェブログ公開ツールを使って、テキスト、写真、動画を共有できます。

    stealthinu
    stealthinu 2016/02/10
    perlのtest.plでTime/HiRes.pmがなくてこける場合はyum install perl-Time-HiResで入る。
  • uehatsu.info - uehatsu's tech blog | 続・忘れないうちに、cpanmのインストール方法

    以前のエントリーでcurlを使ったcpanmのインストール方法をご紹介していましたが、cpanコマンドでインストールする方法も書いてみます。 curlやwgetを使ってダウンロードする方法は手っ取り早いのですが、なんとなくすっきりとしないという意見もありました。そこで、cpanコマンドでcpanmをインストールします。 $ sudo cpan App::cpanminus うん、簡単(^^)v 以前の記事でcpanmのアップデートとして"local::lib"のアップデートを紹介しましたが間違っていました。これは指定したローカルディレクトリ(例えば/home/hogehoge/以下など)にインストールするためのモジュールなので、これではcpanmのアップデートは出来ません。もちろん便利なモジュールです。さて、正確には以下。 $ sudo cpanm --self-upgrade これであな

    uehatsu.info - uehatsu's tech blog | 続・忘れないうちに、cpanmのインストール方法
    stealthinu
    stealthinu 2016/02/10
    cpanm入れるのにはまずyum install cpanでcpan入れてsudo cpan App::cpanminusでcpanm入れるのが一番スマートな感じ
  • Tips (CGI, Perl, Unix and etc.)

    Tips 目次 Tips (CGI&SSI) ブラウザの表示を変化させない CGI スクリプト(Status: 204 No Content) 他の URI (URL) にジャンプする CGI スクリプト(Location フィールド) CGI のタイムアウトおよびブラウザの中断 CGIスクリプト中で重い処理をバックグランド実行 サーバによるタイムアウトを回避 サーバによるタイムアウトを回避&重い処理の保護 SSI における HTML 出力の中断 CGI出力内容のコピーをファイルに出力 CGIによるブラウザでのダウンロード POST のサイズ制限 Content-Encodig による gzip 圧縮 Tips (Perl) flock の使い方 排他制御 実効 UID の切替え perl の setuid スクリプト perl の system、exec、パイプ fork, system

    stealthinu
    stealthinu 2016/01/05
    perlのCGIで非常に時間がかかる処理をさせるような場合にSIGPIPEで死なないようにforkしてそっちで処理を継続させるサンプル。
  • 第6回 UNIXプログラミングの勘所(3) | gihyo.jp

    ネットワークプログラムとSIGPIPE 「私の書いたサーバが突然死するんです。どうしてでしょうか」という質問を受けることがあります。これは多くの場合、SIGPIPEの処理を忘れていることが原因です。SIGPIPEとは、切断されたネットワークソケットなどにデータを書き込もうとした際に送出されるUNIXシグナルです。特に設定しない限り、プロセスはSIGPIPEを受け取ると強制終了されます。そのため、通信が突然切断される可能性のあるTCPサーバにおいては、SIGPIPEを無視するよう設定する必要があります。 # デフォルトの動作(SIGPIPEの場合はプロセスの終了)に設定 $SIG{PIPE} = 'DEFAULT'; # SIGPIPEを無視するよう設定 $SIG{PIPE} = 'IGNORE'; # SIGPIPEを受信した際に実行するサブルーチンリファレンスを # 設定 $SIG{PI

    第6回 UNIXプログラミングの勘所(3) | gihyo.jp
    stealthinu
    stealthinu 2016/01/05
    perlのCGIなどでクライアントの接続が切れている状況で出力しようとするとSIGPIPEが発生してその時点でperlが死ぬ。$SIG{PIPE}を設定するか時間掛かる処理はforkしておく。
  • Encode::JP::Mobile

    NAME Encode::JP::Mobile - 日の携帯電話向け Shift_JIS (CP932) / UTF-8 エンコーディング SYNOPSIS use Encode; use Encode::JP::Mobile; my $bytes = "\x82\xb1\xf9\x5d\xf8\xa0\x82\xb1"; # NTT DoCoMo 絵文字を含んだ Shift_JIS バイト列 my $chars = decode("x-sjis-imode", $bytes); # \x{3053}\x{e6b9}\x{e63f}\x{3053} use Encode::JP::Mobile ':props'; if ($chars =~ /\p{InDoCoMoPictograms}/) { warn "It has DoCoMo pictogram characters!"; }

    Encode::JP::Mobile
    stealthinu
    stealthinu 2015/11/04
    perlで携帯の絵文字を含んだ文字列扱うにはEncode::JP::Mobile使えば内部UTF8に変換できるっぽい。
  • Perlで作るモバイルサイトのコツ:第1回

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Perlで作るモバイルサイトのコツ:第1回
    stealthinu
    stealthinu 2015/11/04
    perlで携帯のキャリア判別はHTTP::MobileAgentで行うのが良いっぽい。