タグ

Perlに関するrryuのブックマーク (36)

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

    こんにちは、エンジニアの id:mp0liiu です。 少し前の話になりますが、5/28にPerlの最新安定バージョンである5.36がリリースされたので、コミュニティ周りの動向も含めて気になった点についてまとめていこうと思います。 use v5.36 一番影響がある変更は use VERSION の効果が変わったことです。 use v5.34 以前はバージョンチェック、要求されたバージョンで利用可能なすべての機能(featureバンドル)の有効化、strict の有効化を行っていましたが、 use v5.36 からは warnings も有効化されるようになりました。 use v5.36; my $str; say $str; # Use of uninitialized value $str in say at ... 1行だけで strict, warnings, 最新の機能の有効化が

    Perl5.36の変更点 - Mobile Factory Tech Blog
    rryu
    rryu 2022/08/29
    書き間違いがうっかり当てはまって謎の挙動になる場合しか活躍の場がない間接オブジェクト記法、ついに廃止されるのか。
  • CPANに上がっているモジュールが対応しているPerlの最小バージョンの統計情報 - 私が歌川です

    CPANに上がっているモジュールが対応しているPerlの最小バージョンの傾向が知りたくなったので、調査することにした。直感では、最低でもPerl 5.8に対応しているモジュールが最も多いと思っていた。 情報を取得する metacpanにはAPIがある*1ので、これを叩いて情報を取得する。 以下のコマンドで、この記事を書き始めた日までの1年間 (2020/5/4 - 2021/5/4) のリリースのうち、最新バージョンのリリースについて検索した。 $ curl -XPOST https://fastapi.metacpan.org/v1/release/_search -d @query.json > result.json query.json にはこういうクエリを書いた。Elasticsearchのクエリは普段あまり手書きしないのでちょっと苦労した。 { "query": { "bool

    CPANに上がっているモジュールが対応しているPerlの最小バージョンの統計情報 - 私が歌川です
    rryu
    rryu 2021/05/05
    おそらく最新のバージョンだと動かないに対応した結果だと思うのだが、微妙な書き方が結構構文変更にひっかるという。
  • 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
    rryu
    rryu 2021/04/15
    文字=言語な国だといい結果になると思うのだが、Unicodeには日本語文字というという分類がないので残念なことになってしまうという。
  • Perl 5.32の連鎖比較(Chained comparisons)はどの様に実装されているのか - Acme::AnaTofuZ->new;

    この記事はPerl Advent Calendar 2020と琉大 Advent Calendar 2020の11日目の記事です。 PerlPerl5になって長いですが、現在の最新の安定版のバージョンは5.32です。 Perl5.32で取り入れられた(厳密には5.31からですが)のおもしろ機能として連鎖比較(Chained comparisons)が存在します。 今までPerlで数値などが特定の範囲に含まれているかどうかをif文で判定するには次の様に書く必要がありました。 if (10 < $n && $n <= 20) これがこう書ける様になります!!! if ( 10 < $n <= 20 ) {...} 便利!!!!!!!!!!!!!!!!!!!!!!!! ...........というわけで、この便利な連鎖比較がどの様に実装されているかを探検してみます。 言語処理系の実装 さて今か

    Perl 5.32の連鎖比較(Chained comparisons)はどの様に実装されているのか - Acme::AnaTofuZ->new;
    rryu
    rryu 2020/12/12
    構文解析的には算術演算子と同様に結合できるようにするだけだからそんなにすごい変更でもないのか。
  • 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
    rryu
    rryu 2020/06/25
    new Foo() 終了は結構引っかかりそうな感じがあるかcpanモジュールは割と大丈夫ということなのか。
  • 「Perl 7」が発表 ~来年にも四半世紀ぶりのメジャーバージョンアップへ/「Perl 5」は長期メンテナンスモードとしてサポート

    「Perl 7」が発表 ~来年にも四半世紀ぶりのメジャーバージョンアップへ/「Perl 5」は長期メンテナンスモードとしてサポート
    rryu
    rryu 2020/06/25
    Perl 5.32 でいくつかのレガシーな機能を禁止できるようにしてPerl 7でデフォルト禁止にするということっぽい。
  • Perl でちょっと CPAN モジュールを試すのに Google Colaboratory が便利 - odan’s diary

    モチベーション NodeJS である npm パッケージを試したいとなった場合 RunKit is Node prototyping がとても便利です。任意の npm パッケージをインストールができ、なおかつ他人のその結果を共有できます。例えば、これは誰かと一緒にある npm パッケージの使い方の相談をするときによく使います(e.g. lodash の groupby の使い方を示したり)。 Perl でも同様に任意の CPAN モジュールをインストールして、他人に結果を共有できるサービスがあると便利なのですが、一般公開されているものを見つけることはできませんでした。 そんな気持ちを持ちつつ、ある日突然 Google Colaboratory を使えば目的を達成できるのではと気付いたので、これを紹介します。 やり方 perl.ipynb · GitHub にアクセスします。 画像の Ope

    Perl でちょっと CPAN モジュールを試すのに Google Colaboratory が便利 - odan’s diary
    rryu
    rryu 2020/03/13
  • errnoから何のエラーか簡単に調べるためのワンライナーの解説 - 時計を壊せ

    qiita.com こんなワンライナーがあります: % perl -E 'say$!=24' Too many open files これの正体に迫っていきたいと思います。 どのように解釈されるのか まずはこれがいったいどのようにParseされるのかを知るために、 -MO=Deparse を付けて実行してみましょう。 % perl -MO=Deparse -E 'say$!=24' use feature 'current_sub', 'evalbytes', 'fc', 'say', 'state', 'switch', 'unicode_strings', 'unicode_eval'; say $! = 24; -e syntax OK say $! = 24 キモはこれです。 $! という変数に 24 を代入して、その式の結果を say が受け取っています。 Perlの代入式は左辺

    errnoから何のエラーか簡単に調べるためのワンライナーの解説 - 時計を壊せ
    rryu
    rryu 2019/05/28
    Perlの魔法のような挙動は魔法すぎて訳がわからないのが困る。
  • さようならsearch.cpan.org | スラド デベロッパー

    search.cpan.orgが2018年6月25日をもって閉鎖となる(The Perl NOCの記事)。 このサイトは20年近く前にGraham Barr氏が作り、1999年初頭からCPANのPerlモジュールやオンラインヘルプ検索機能を提供し続けてきた。しかし、その多くを2005年当時のPerlコードが占め、近年では保守が負担となっていたとのこと。 幸いにもsearch.cpan.orgが担ってきた機能はMetaCPANに引き継がれており、閉鎖後はすべてのトラフィックがリダイレクトされる。

    rryu
    rryu 2018/05/20
    search.cpan.orgとMetaCPANは相補的な存在だと思っていたのだがMetaCPANだけでやっていけるのだろうか。正直MetaCPANは使いづらい…
  • JVNDB-2016-005164 - Perl 用 DBD::mysql モジュールにおけるバッファオーバーフローの脆弱性 - JVN iPedia - 脆弱性対策情報データベース

    CVSS v3 による深刻度 基値: 7.5 (重要) [NVD値] 攻撃元区分: ネットワーク 攻撃条件の複雑さ: 低 攻撃に必要な特権レベル: 不要 利用者の関与: 不要 影響の想定範囲: 変更なし 機密性への影響(C): なし 完全性への影響(I): なし 可用性への影響(A): 高 CVSS v2 による深刻度 基値: 5.0 (警告) [NVD値] 攻撃元区分: ネットワーク 攻撃条件の複雑さ: 低 攻撃前の認証要否: 不要 機密性への影響(C): なし 完全性への影響(I): なし 可用性への影響(A): 部分的

    rryu
    rryu 2016/11/01
    これはどれくらいの深刻度なのだろう。「エラーメッセージに関する処理を介して」ということはエラーになるようなことがなければセーフということなのだろうか。
  • 変数は「箱」か? - the code to rock

    ここ数日、業務が落ち着く頃合いを見計らっては週末に行われるPerl入学式の資料に手を入れていました。 参加登録場所: Doorkeeper Perl入学式 in東京 第2回 〜構文基礎編〜 - Perl入学式 in東京 | Doorkeeper 講義資料 workshop-2016/slide.md at master · perl-entrance-org/workshop-2016 · GitHub 資料は校長の @papix さんがざーっと一気に作ってくれて、ぼくがやったのはちょこちょこっとしたリファクタリングというか、文字校正みたいなものでしたが、それだけでもいろいろ勉強になって楽しかったです。 (あいにく、ぼくは当日参加できないのですが) さて、その資料を作る際にはメンバーの方々とあーでもないこーでもないと様々な議論をしていたのですが、その一つに「変数を『箱』に喩えて説明している

    変数は「箱」か? - the code to rock
    rryu
    rryu 2016/06/14
    Perlだと参照値というかアドレスを明示的に扱えるから箱モデルでも違和感は無いように思う。
  • Perlの最新バージョン 5.24リリース - サブルーチンと数値計算の高速化、Unicode 8.0のサポート、文法機能強化 - Perl入門ゼミ

    Perl › バージョン情報 › here Perlの最新バージョン5.24がリリースされました。今回のリリースでは、Perlのサブルーチンと数値計算の高速がなされています。また、機能面では、Unicode 8.0のサポートがなされました。文法的な強化として、前方デリファレンスの実験的なステータスがはずされています。その他、細かなバグフィックスがなされました。 Perl 5.22に引き続きPerl 5.24では、Perlの内部コードの改善がなされています。パフォーマンスの改善という大きなメリットがありますが、いくつかの副作用もありますので、合わせて、解説します。 自分が技術的に不慣れで、安定的なPerlを望むなら、今のところPerl 5.20がおすすめです。技術的に強く、パフォーマンスの改善や新しい機能にチャレンジしたい方は、Perl 5.24にトライしてみてください。 以下で、Perl

    Perlの最新バージョン 5.24リリース - サブルーチンと数値計算の高速化、Unicode 8.0のサポート、文法機能強化 - Perl入門ゼミ
    rryu
    rryu 2016/05/11
    Perlのマイナーバージョンはもう20を超えているのか。
  • New Class of Vulnerability in Perl Web Applicationsの紹介

    Redditを眺めておりましたら以下の記事が目に止まりました。 New Class of Vulnerability in Perl Web Applications ざっくりというと以下の様な内容です CGI.pmのparamメソッドの返り値をハッシュに突っ込んでいる箇所がある クエリ文字列に同名のパラメータを複数セットすると、配列値が返る 配列をハッシュに突っ込むことにより、別のキーの値が変更される 私はこの内容に興味を持ちましたので、以下に詳しく説明します。 PoC 元エントリにもPoCが出ておりますが、少し手をいれたものを以下に示します。 #!/usr/bin/perl use strict; use CGI; my $cgi = new CGI; my $loginname = 'smith'; my $password = 'a3k!sz9'; my %user = ('log

    rryu
    rryu 2014/10/27
    Perlの配列の要素に配列を入れようとすると元の配列に混ざるという挙動は実に罠っぽい。
  • Perl の @- と @+ のペナルティが高すぎる - Qiita

    初投稿のテストを兼ねて。 greple の高速化 greple というコマンドを作っている (Markdown が壊れているのはご勘弁を)。 中身は少し気の利いた grep コマンドということだが、それは題ではなく、こいつに正規表現で "." 、つまり1文字にマッチするパターンを検索させると、こういうひどい結果になる。 % wc -c C1.bm1 196483 C1.bm1 % time greple . C1.bm1 > /dev/null 62.587u 0.094s 1:02.71 99.9% 0+0k 0+0io 0pf+0w もちろん、こんな使い方をするのが悪くて、マッチするパターンが少なければ、もっと普通の時間で終了する。 % time greple .+ C1.bm1 > /dev/null 2.353u 0.015s 0:02.37 99.5% 0+0k 0+0io 0

    Perl の @- と @+ のペナルティが高すぎる - Qiita
    rryu
    rryu 2014/04/27
    たぶん@-と@+はアクセスした時に作られるだろうからその負荷な感じがする。
  • http://www.hidekik.com/cookbook/p2h.cgi?id=smtptls

  • Perl - New slice syntax for 5.19.4+ - skaji's blog

    http://www.nntp.perl.org/group/perl.perl5.porters/2013/07/msg204023.html perldelta.pod The new %hash{...} and @array[...] syntax returns a list of key/value (or index/value) pairs. (おそらく @array[...] は %array[...] の間違い) perl 5.19.4 から新たな slice syntax が導入されるらしい。 スライスと言えば use feature qw(say); my %hash = map { $_ => uc $_ } 'a'..'z'; my @array = 'a'..'z'; say join ', ', @hash{ 'b', 'd', 'i' }; # B, D,

    Perl - New slice syntax for 5.19.4+ - skaji's blog
    rryu
    rryu 2013/09/22
    便利そうだけど、希代の罠記法になりそうな気もする。
  • なぜ国内でPerlが急速に萎んだのか

    2005年 Railsの襲来2005年に突如現れたRailsによって国内でRuby利用者が急増したのがPerl滅亡への第一歩となった。書きやすさに作者がとことんこだわって作られたRubyの魅力を一度知ってしまうとPerlの古くさく読み辛く書き辛い文法に誰もがうんざりし始める。 2007年 JavaScriptブームAjaxで再発見されたJavaScriptのブームもPerl終焉に若干ながら貢献している。ブラウザというPerlが全く手を出せないジャンルの王者JavaScriptの持つ華やかさに誰もが憧れ、そして手元のPerlの古くささに反吐が出始める。不器用で不細工なところも含めて愛していた女房とつつましく送っていた人生に、突然ぴちぴちのボイン女子大生が転がり込んで来たようなものである。 スマホ/ソーシャルゲームバブルiPhone市場が格的に立ち上がり、Perlとは全くの無関係であるスマホ

    なぜ国内でPerlが急速に萎んだのか
    rryu
    rryu 2013/03/07
    Perlは気軽にCGIで使おうとするとバイナリなcpanモジュールがうざいし、そうでないならFastCGIとかPSGIとか動かすのが面倒そうなのが出てくるのがあれな感じ。
  • 変数に型がないということの利点について考える - Perl入門ゼミ

    Perl › 読み物 PHPPerlRubyPythonなどのスクリプト言語に対して、変数に型がないということを否定的にとらえる人もいるかと思います。特にC言語やJavaなどの静的言語を使ってきた人にとっては、型がないということが不安材料として目に映ることが多いのではないかと思います。 けれども、型がないということは、当に素晴らしいことです。型がないことによって、たくさんの面倒から解放されるからです。 どのような型の値でも代入できる まず基的なこととして変数に型がなければどのような型の値でも代入できるということです。つまり、受け取るときに、どのような型の値を受け取るのかを意識する必要がありません。 my $str = 'Hello'; my $num = 1; my $nums = [1, 2, 3]; my $person = {age => 2, name => 'taro'

    変数に型がないということの利点について考える - Perl入門ゼミ
    rryu
    rryu 2013/03/03
    とりあえずPerlは$@%の静的型付け言語だよねえ。参照とblessがすべてをぶっ壊しているだけで。
  • Perlの食えない事情 - 演算子編 - アリ

    Perlえない事情 より おっと、そうです、Perlには演算子が多すぎるのでした。せっかくの機会なので、Perlの演算子を紹介します。 ビーナス演算子: 0+, +0 数値として評価してくれます。意外とよく見かけますね。 なぜこの演算子を使う必要があるのかというと、Perlは文字列と数値を明確に区別できないからです。scalarを文字列として解釈するならば文字列として、 print 0+ '10'; #=> 10 print 0+ '123b'; #=> 123 print '1.2e3' +0; #=> 1200 print [] +0; #=> 4303367864 ちなみに、文字列として評価するときにはこのようにするとかっこいいと言われています。 $obj.q(); 一見メソッド呼び出しのように見えますが $obj . ''; と等価です。 ベビーカー演算子: @{[ ]} 文字

    Perlの食えない事情 - 演算子編 - アリ
    rryu
    rryu 2013/02/09
    どうしてそういう挙動になるのかの謎解き編も欲しい。
  • Parallel-ForkManager-0.7.9 - A simple parallel processing fork manager - metacpan.org

    rryu
    rryu 2012/02/16
    同時実行数を制限しつつforkして並列処理するモジュール。