タグ

perlに関するfashiのブックマーク (86)

  • Perl5.38の変更点 - Mobile Factory Tech Blog

    こんにちは、エンジニアの id:mp0liiu です。 今年も7/2にPerlの最新安定バージョンである5.38がリリースされたので新機能や変更点についてまとめます。 5.38 はかなり変更点が多いですが、ニッチな機能に対する変更も多いので影響の大きそうな箇所だけ知りたい方は最初の方だけ読んで頂くといいと思います。 重要な変更点 class構文の追加 実験的機能としてですが、ついに Perl にclass構文が追加されました。 次のような構文になります。 use v5.38; use experimental 'class'; class Point; field $x :param = 0; field $y :param = 0; method move($dx = 0, $dy = 0) { $x = $dx; $y = $dy; } method print { say "x: $

    Perl5.38の変更点 - Mobile Factory Tech Blog
  • Perlの最新動向 2021 - Mobile Factory Tech Blog

    こんにちは、エンジニアの id:mp0liiu です。 8月28日(土)の Learn Languages 2021 というイベントの Language Update というセッションで@charsbarさんと一緒に2018年以降のPerl5やPerlコミュニティの最新動向について話してきたので、そのとき話した内容に補足などしつつ記事にしていきたいと思います。 配信アーカイブはこちらから見れます。 時系列 2019/5/22 Perl5.30 リリース 2020/6/20 Perl5.32 リリース 2020/6/24 Perl7の発表 2021/5/21 Perl5.34 リリース Perl5.30 の変更点 正規表現や文字周りの細かい改善などはありますが、正直めぼしい変更点が見られないです。 Perl5.32 の変更点 isa 演算子の実装 値があるクラスのインスタンスもしくはそのサブ

    Perlの最新動向 2021 - Mobile Factory Tech Blog
    fashi
    fashi 2021/10/13
    「以前発表された Perl7 の内容は取り下げ」/ 連鎖比較とtry-catchは良いな
  • Perlで\p{Hiragana}とかが記号にマッチする問題 - Qiita

    みなさん、ワンライナーで日語を簡単に処理したい場合、何を使うでしょうか。 ワンライナーで言語処理といえばPerlですよね[要出展]。 Perlでは、「ひらがな」「カタカナ」「漢字」といった文字にマッチする正規表現を簡単に書くことができます。 例えば、青春→鯖鰆みたいなやつという記事では、漢字にマッチさせるのに\p{Han}という正規表現を使っていました。 $ perl -Mutf8 -CSD -le 'print "漢" =~ m{\p{Han}} ? 1 : 0' 1 $ perl -Mutf8 -CSD -le 'print 1 if "あ" =~ m{\p{Han}} ? 1 : 0' 0 なんてこった。 "「"は明らかに漢字じゃないだろう? 調べてみると、perlunicodeに以下のような記述がありました。 Prior to Perl v5.26, the single for

    Perlで\p{Hiragana}とかが記号にマッチする問題 - Qiita
    fashi
    fashi 2021/04/15
  • [GIT] 「ファイルのタイムスタンプをコミット日時に合わせる」を爆速にした

    さて、ここで今この記事を読んでいる読者は、私と同じように何らかの理由があってタイムスタンプを変更したい方が多いのではないか、と思います。 私がタイムスタンプを変更したい理由は、とあるビルドシステムがファイルのタイムスタンプを使って差分ビルドの「ビルドする・しないを決める」、かつ、同じワークスペースでブランチを行き来するため pull したときのタイムスタンプが、そのブランチにおけるファイルの変更と一致しないため、差分ビルドしたときに入ってほしいものが入ってない、入ってほしくなものが入ってしまった。という事象の解決のためでした。

    fashi
    fashi 2021/04/14
  • grepでは困難な、特定文字列の存在行から別の文字列が存在する行までの抽出 (Perlのflip-flop演算子の使い方) - 理系学生日記

    特定の文字列がある行から、別の特定の文字列がある行までを抽出したいということがよくあります。 これgrep等を使うと苦労する話なんですが、flip-flop演算子を使ったPerlのone-linerで可能です。 例えば昨日の記事ではgit help commitの中から--no-edit/オプションの説明を抽出しました。 これは--no-editという文字列が出てくるところから空行までを抽出すれば良い。これは以下のようにすれば可能です。 $ git help commit | perl -nle 'print if /--no-edit/ ... /^\s*$/' 解説自体に空行が混じるケースでは以下のようにすれば良いでしょう。 この例では、--cleanupという文字列が出現してから、次のオプション(-文字列形式)が出るまでを抽出しています。 $ git help commit | pe

    grepでは困難な、特定文字列の存在行から別の文字列が存在する行までの抽出 (Perlのflip-flop演算子の使い方) - 理系学生日記
    fashi
    fashi 2021/02/28
    PerlとRubyにはあるらしいんだけど他の言語でも使いたいな
  • twitter-textのPerl実装 Twitter::Text を公開した - 私が歌川です

    Twitter::Text - Perl implementation of the twitter-text parsing library - metacpan.org Perlでツイートをバリデーションしたいときに使うことができます。どうぞご利用ください。 いろいろ学びがあったので、実装方針などについて書いていきます。 動機 そもそも既存ライブラリはなかったのか、と思うのですが、どうやら9年前から存在しなかったようです。 ツイートを読んでPerlのデータ構造にするText::Twitterってモジュールを見た記憶があるんだけど、そんなものはCPANになかった。なにを見たんだろう……。— 栗林健太郎 (@kentaro) 2011年1月24日 GitHubtwitter text perl で検索すると、以下のリポジトリがヒットしますが、どれも要件を満たさなかったです。 GitHu

    twitter-textのPerl実装 Twitter::Text を公開した - 私が歌川です
    fashi
    fashi 2020/10/29
    Twitterしょっちゅう仕様変えてくるからメンテが大変だろうな
  • 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
    fashi
    fashi 2020/06/25
    デフォルトでいくつかのモジュールが有効化されているPerl5.32
  • 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

    fashi
    fashi 2019/10/15
  • 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日記
    fashi
    fashi 2019/01/09
  • Perl 5.26への@INC問題にアップグレード前に対処しておきましょう - Perl入門ゼミ

    Perl 5.26では、セキュリティ上の問題で、モジュールのインクルードパスから「.」(カレントディレクトリ)が取り除かれます。 この問題についてはcharsbarさんの記事が詳しいです。 '.' in @INC問題とその対処法について(2017年3月版)Add Star Perl 5.26にアップグレードする前にこの問題に対処しておく CPANモジュールについては、この問題については対処してくれるようですので、修正の必要があるのは、自社で使っているスクリプトです 僕の会社でも、古いCGIスクリプトが一部現役で動いていたりします。ちょっと調べてみると、Perl 5.26にアップグレードする前には、スクリプトを一部修正する必要があるようでした。jcode.plやcgi-lib.plが読み込まれているものがちらほらとあります。 そこで、以下のようにfindといくつかのコマンドを組み合わせて、修

    Perl 5.26への@INC問題にアップグレード前に対処しておきましょう - Perl入門ゼミ
    fashi
    fashi 2017/04/11
  • LINE Notifyを使ってみた。

    いつも三日坊主で、はりきったトコロで続かないから、はりきらないでダラダラ行こうと考えて、不定期で更新中の中身のうすーいブログです。 なんか「LINE Notify」とかいうサービスがあるらしい。 LINE Notify 今のところオフィシャルにはGitHubやIFTTTと連動できるらしい。 まぁ、他のPush通知サービス(Pushalot、Pushover、Pushbulletとか)でもいいのかもしれないけど、LINEは流行りだし、通知を受けるためだけに他のアプリを入れなくて済むし、なんかLINEグループ宛にメッセージを発行してくれるっぽいから複数人で同じ通知を受けたい時にはこっちの方がいいのかもしれない。 ドキュメントはここ。 LINEアカウントでログインしてマイページに行くと「トークンを発行する」というボタンがあるので、これをクリックしてアクセストークンを発行できる。 APIはいくつか

  • 手元開発環境でサーバを起動時のみcronのようにスクリプトを実行する(Perlの場合) - $shibayu36->blog;

    これまでPerlを利用した手元開発環境でどのようにcronを動かすか迷ってきたのだけど、その解決策が見つかったのでメモ。 課題 開発サーバや番サーバではcronで定期的にスクリプトが実行されている 定期的に実行されているスクリプトが動かないと、正しく動かない機能がある 例えば予約投稿みたいな機能など しかし手元開発環境ではcronのように定期的にスクリプトを実行していなかった 結果として、手元開発環境で手動でスクリプトを動かさないと確認できない機能があった 解決策として手元でもcrontabを書く方法もあるのだけど、この場合開発していない時も勝手に実行されるので避けたかった。 解決方法 実はProclet というツールに、サーバを起動しながら定期的に指定したコードを実行してくれる機能があるということに気づいた。詳しくはSYNOPSISを参照。 これを使ってcronに指定しているスクリプト

    手元開発環境でサーバを起動時のみcronのようにスクリプトを実行する(Perlの場合) - $shibayu36->blog;
    fashi
    fashi 2016/09/06
    perlの場合ってなってるけどコード見る限り何でも使えそう
  • 俺とおまえとperlワンライナー - 俺たちのブログ

    ※7号の『俺とおまえとawk』にはてブがいっぱいついて羨ましかったので、丸パクしたのっかりエントリです。 「EFK (Elasticsearch + Fluentd + Kibana) なんて甘えですよ、漢は黙って perl | sort | uniq -c ですよ」と誰かが言ってたような言ってなかったような気がするのでログさらう時に自分がよく使う perl 芸について書きます。 想定データサンプル こんなフォーマットで出る TSV 形式の Web アプリケーションログがあったとします。[TAB] はタブ文字です。 時間[TAB]ステータス[TAB]HTTPメソッド[TAB]URI[TAB]リクエストタイム 例えばこんな感じです。このログを perl 芸で処理していきます。 access.log 2014-12-05 12:00:00[TAB]200[TAB]GET[TAB]/api/v1

    俺とおまえとperlワンライナー - 俺たちのブログ
    fashi
    fashi 2015/09/03
  • Perlワンライナー集 - ablog

    障害対応でのログ解析、ソースコードの調査といったテキスト処理で使った Perl ワンライナー集です。 マルチライナーやいけてないのもありますw Perl ワンライナーの好きなところ PerlOracle Database (10g以降) に同梱されているので、Windows プラットフォームでも使える*1。 awk、sed、grep の正規表現の書き方などをそれぞれ覚えれない。awk、sed、grep でできることはだいたい Perl でできるので、Perl に絞ると覚えることを減らせる*2。 最小限の労力で最大限の仕事ができる。ちょっとしたプログラムを書くような処理でも Perl ワンライナーを使うとたった1行で済むことがあります*3。 Perlワンライナー集 一部、Perl 以外に bash、find、xargs なども含んでいます。 レコードセパレータを変更する perl -w

    Perlワンライナー集 - ablog
    fashi
    fashi 2015/09/03
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    fashi
    fashi 2015/09/03
  • いさましいちびのツールたち unzip.pl untar.pl enc.pl - ぽち*ぷ〜ち

    fashi
    fashi 2014/11/06
  • Windows環境でUnicodeファイルを扱う - JPerl Advent Calendar 2009

    こんにちわ!クリスマスを過ぎるとニートになることが決まっている xaicron です! ハッカーでもなんでもないのですが、勢いに任せて登録してみました!!すいません>< はじめに 今日は、Windows環境以外の人は何にも関係ない、モジュール Win32::Unicode をご紹介しようとおもいます。 しかもまた文字コード関連の話ですね!!にEncodeでラクラク日語処理を読んでから詠むと、より理解が深まるかもしれません。 Win32::Unicodeって? Windowsperl を使う場合の選択肢としては ActivePerl と Strawberry Perl の二種類があげられます。 どちらも Windows 用にカスタマイズされたものなのですが、悲しいことにどちらの Perlを使っても Unicode 文字の含まれたファイルが扱えません。 でもそれだと悲しいので、Unic

    fashi
    fashi 2014/11/06
  • Unicode::Normalize で遊ぶ - daily dayflower

    Unicode の規格では,文字の合字(リガチャ等)等を統一的に扱えるように,「正規化」という処理が仕様として定まっています。この正規化処理のうち「互換性分解」という処理を行うと副作用として半角カナを全角カナに変換できます(逆に全角カナ→半角カナはできません)。 #!/usr/bin/perl use strict; use utf8; use Encode; use Unicode::Normalize; my $src = 'ポンジュース'; my $dst = Unicode::Normalize::NFKC($src); print Encode::encode('utf8', "${src} => ${dst}\n"); # OUTPUT is: ポンジュース => ポンジュースUnicode の正規化についてはperl5.8のUnicodeサポート および http:/

    Unicode::Normalize で遊ぶ - daily dayflower
    fashi
    fashi 2014/09/05
    便利だけど予想外の文字も分解されちゃうな
  • Filesys::DfPortable - Perl extension for filesystem disk space information. - metacpan.org

    NAME Filesys::DfPortable - Perl extension for filesystem disk space information. SYNOPSIS use Filesys::DfPortable; my $ref = dfportable("C:\\"); # Default block size is 1, which outputs bytes if(defined($ref)) { print"Total bytes: $ref->{blocks}\n"; print"Total bytes free: $ref->{bfree}\n"; print"Total bytes avail to me: $ref->{bavail}\n"; print"Total bytes used: $ref->{bused}\n"; print"Percent fu

    fashi
    fashi 2013/07/17
  • http://y-ono.dtpwiki.jp/xml/psdecode.xml

    fashi
    fashi 2011/03/31