タグ

関連タグで絞り込む (245)

タグの絞り込みを解除

perlに関するBigFatCatのブックマーク (464)

  • cpanm をインストールすることもなく CPAN モジュールをインストールする方法

  • Perl ワンライナーとその仲間たち - Qiita

    こちらはPerl Advent Calendar 2018の18日目の記事になります。昨日は、Morichanさんによる、クラス図とPerlの対応付け でした。 さて、みなさん、日頃からワンライナーは使ってますでしょうか? これまで何度となく出てきたネタかとは思いますが、Perlによるワンライナーについて改めて整理してみます。 (…記事は今年のYAPC::Okinawa 2018 ONNASONの「Perlを中心としたワンライナーあれこれ」の加筆・訂正版ですw) ワンライナーとは 「ワンライナー」とは、たった1行だけのプログラムです。 プログラムを書きたいが、 エディタを起動するほどの手間はかけたくない、というときに威力を発揮します。 日語で言うところの、いわゆる一行野郎です。 最近界隈で人気のシェル芸的な分野などでも使えると思います。 基perlでは、コマンドラインオプションの

    Perl ワンライナーとその仲間たち - Qiita
    BigFatCat
    BigFatCat 2018/12/18
    ojo
  • Perl使いの国のRubyist

    This document contains code snippets and data in various programming languages. It shows sample code for loops, modules, subroutines, data types, and more. Version counts from 2009 to 2018 are also included.Read less

    Perl使いの国のRubyist
  • 実用 perl ワンライナー - Qiita

    こちらの記事で紹介されているawkでの操作について、Perlではどう書けるかを確認したものです。 http://qiita.com/b4b4r07/items/45d34a434f05aa896d69 awkは難しいけど、Perlならちょっとだけ普通のプログラミング言語に近いから何とか…(あるいは昔CGI書いてたから何とか…)というニッチ層向け。 使用するコマンドラインオプション 各オプションの詳細は perldoc perlrun コマンドで参照できます。 -e 'Perlプログラム' パラメータをそのままプログラムとして実行します。ワンライナーの根。 -E 'Perlプログラム' -e と同じですが、いくつかの追加機能が有効になります。ワンライナーでは主に、末尾に改行を追加して print する関数 say を使えるようにするために指定します。 -n 入力の各行に対して指定したプログ

    実用 perl ワンライナー - Qiita
    BigFatCat
    BigFatCat 2018/01/24
    -C -CSD知らなかった
  • Perlで雑なスクリプトを書く時の個人的な三種の神器 - Masteries

    日常の中で複雑な作業をしたい時, Perlで雑なスクリプトを書いて実現することがあります. そういった時によく使うCPANモジュール達を紹介しようと思います. Path::Tiny metacpan.org ファイルの読み書きはもちろん, ファイルやディレクトリの存在確認, ディレクトリからのファイルの走査, 一時的なファイル/ディレクトリを用意... などなど, ファイルやディレクトリ操作に関するあらゆることがこのモジュール1つで実現できて便利です. Data::Printer (DDP) metacpan.org 便利で見やすいData::Dumper. 雑なスクリプトを作る時は, とにかくData::Printerで途中結果を表示しながら試行錯誤しています. papix.hatenablog.com 過去にこういう紹介記事を書いていました. papix.hatenablog.com

    Perlで雑なスクリプトを書く時の個人的な三種の神器 - Masteries
  • いまだに 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 で消耗しているの?
  • 2017年春のPerl

    YAPC::Asia Tokyo 2012 の 2日目9月29日の夕方のトーク「モダンmod_perl入門」のスライドです。

    2017年春のPerl
  • Perlの最新バージョンPerl 5.26リリース。インデント可能ヒアドキュメント、Unicode 9.0、長いキーのハッシュの性能改善 - Perl入門ゼミ

    Perl › バージョン情報 › here 2017年5月30日にPerl 5.26がリリースされました! Perlの登場が1987年ですから、ついに30年目を迎えます! 機能の追加 Perl 5.26におけるいくつかの機能の追加です。便利そうなものをピックアップしてみます。 インデント可能ヒアドキュメント インデント可能ヒアドキュメントの構文が追加されました。これは便利そうです。 my $message = <<~EOS; Hello World EOS 末尾の文字(ここではEOS)の位置が、左の位置になって、出力結果は以下のようになります。 Hello World エディタで、ソースコードの色付けがうまくできるようになるとさらによい感じです。 Unicode 9.0のサポート Unicode 9.0がサポートされました。Unicode 9.0でさらに追加された顔文字などを扱うことができ

    Perlの最新バージョンPerl 5.26リリース。インデント可能ヒアドキュメント、Unicode 9.0、長いキーのハッシュの性能改善 - Perl入門ゼミ
    BigFatCat
    BigFatCat 2017/06/01
    "正規表現の中のエスケープされていない「{」は許可されません"←これやばそう
  • PerlでJSONを生成するときにハマる罠 〜数値と文字列〜 - Qiita

    use strict; use warnings; use feature 'say'; use JSON qw/ encode_json /; my $num = 10.2; my ($int, $dec) = split /\./, $num; print encode_json({ int => $int, dec => $dec });

    PerlでJSONを生成するときにハマる罠 〜数値と文字列〜 - Qiita
  • use Foo () としたときFoo->importが呼ばれないのはなぜか - skaji’s blog

    perl5の話題。 use FooとするとFooをrequireしつつ、Foo->importが呼ばれることはよく知られているが、 use Foo ()としたときには、importは呼ばれない。 これをどういう風にして実現しているのか前から疑問に思っていた。 というのも普通の関数は「引数なし」と「空リストの引数」を区別できないからだ。 perlのソースコードをみたところ、 parseのところで「引数なし」と「空リストの引数」を区別しているとわかった。 https://github.com/Perl/perl5/blob/v5.24.0/op.c#L6048 https://github.com/Perl/perl5/blob/v5.24.0/perly.y#L346-L354 追記 import を呼ばないための記法として use Foo () が用意された、という経緯があった気がしますん

    use Foo () としたときFoo->importが呼ばれないのはなぜか - skaji’s blog
  • 最近のplenv/Cartonの運用 - Masteries

    最近のplenvとCartonの運用というか, 「こういう感じでやっていっています」という話です. あらすじ: cpanm --installdeps . PerlでWebアプリなど開発する場合, cpanfileに必要なライブラリを指定し, Cartonを使ってcarton installで必要なライブラリをインストールして, 開発を進めていくのが一般的だと思います. ...が, 横着な自分は大抵cpanm --installdeps .を使って, cpanfileで指定されたライブラリをそのままPerlにインストールして開発していくことが多かったのですが, 先日それで痛い目に逢いまして, 「ちゃんとCartonを使ってやっていこう」と心に誓いました. 「きれいなPerl」でCartonを使う というわけで, コアモジュールとApp::cpanminus, Cartonだけ入った「きれい

    最近のplenv/Cartonの運用 - Masteries
  • 2時間半で学ぶPerl @ Things Of Interest

    translated by Kato Atsusi Perlは動的な、動的型付けの、高級な、スクリプト(インタープリタで解釈される)言語で、PHPPythonとともによく比較されます。Perlのシンタックスは、昔のshellスクリプトツールから多くの部分を借りており、それにより混乱させるシンボルを使い過ぎていることで有名です。それらの大多数をGoogleで検索することは不可能です。Perlのshellスクリプトから受け継いだ遺産は、glueコード(他のスクリプトやプログラムと一緒にリンクされているスクリプト)を書くのに、大変役に立ちます。Perlは、理想的にテキストデータを処理することや、テキストデータを生成するのに適しています。Perlは広く行き渡り、有名であり、極めてポータブルで、十分にサポートされています。Perlは"There's More Than One Way To Do

    2時間半で学ぶPerl @ Things Of Interest
  • Perl のグローバル変数やレキシカル変数について - Qiita

    Perl にはいくつかの変数宣言があります。 my our local state my による変数宣言は多くの書籍で解説されていておなじみのものですが、それ以外の変数宣言の意味がイマイチわからないという声も聞きます。というわけで、ざっとまとめてみました。 use strict が無かった時代 モダンな Perl では、use strict を書いた上で、使用する変数は my を使って宣言をするということが常識となりました。 とはいえ太古の昔は use strict もなく、変数も宣言することなく使用していました。いわゆるグローバル変数だけの世界です。 まさに原始的なシェルスクリプトの世界に近いですが、今では好ましい書き方とはされません。スコープを狭めたり、初出の変数であることを明示したりといったことを my で行うことが好ましいとされています。Perl も例に漏れず、プログラミング言語で

    Perl のグローバル変数やレキシカル変数について - Qiita
    BigFatCat
    BigFatCat 2016/04/20
    state知らなかった。
  • 俺のワンライナー改め CLI ツール群のステマ

    このエントリーは Perl 5 Advent Calender 2015 の3日目の記事です。 まだワンライナーで消耗してるの? Perl で書くワンライナーが便利というのはもうさんざん語られている気がするし自明だろうて、このたびはコマンドラインインターフェースで便利なツール群をドヤ顔でステマしたいと思います。怠惰ゆえ、もうワンライナー書くのも面倒になったらコマンドにしてしまえこのやろう、というノリですぜ、おとっつあん。 手前みそですが、できる限り便利そうなやつをピックアップするので、ひとつお付き合いください。ペコリ。 swoop まずは Statistics::Swoop をインストールすると付いてくる swoop コマンド。これは、ログのあるカラムの合計、最大、最小、レンジ、平均をさくっと算出してくれるコマンド。 $ cat log_file | swoop -f3 -d, .----

    俺のワンライナー改め CLI ツール群のステマ
  • ドキュメントとテストコードつきのPerlスクリプトを書く方法 - kazuhoのメモ置き場

    Re http://d.hatena.ne.jp/perlcodesample/20091130/1258979624, http://mt.endeworks.jp/d-6/2009/12/scriptsubimport.html スクリプトとコードとテストを単一のファイルにまとめたい*1という需要が、かねて自分の中であったので教えを請うた結果、以下のような感じで書けばいいことがわかった。 #! /usr/bin/perl use modules...; my $global = ...; sub foo { ... } sub bar { ... } run_tests() if $ENV{HARNESS_ACTIVE}; # メインのコード foo(); bar(); ... sub run_tests { ... exit; } __END__ =head1 NAME my_scr

    ドキュメントとテストコードつきのPerlスクリプトを書く方法 - kazuhoのメモ置き場
  • 第32回 新人さんのためのPerl入門(2) | gihyo.jp

    前回の(1)はこちらから。 Perlのコーディング規約 いざ学んだPerlアウトプットしようとしたときには、Perlの自由な記述に戸惑うことがあるでしょう。ここではコーディングスタイルの一例として「Perl style guide」を、そしてコーディングをサポートするモジュールとしてPerl::CriticとPerl::Tidyを簡単に紹介します。 perlstyleでコーディングスタイルを参考にする Perlのコードをどのように書くとよいのかの一例として、Perldoc内に「Perl style guide」という形で紹介されています。ターミナルからperldoc perlstyleで参照でき、インデントやスペースの置き方、ドキュメントの書き方の指南が提供されています。 perlstyle内でも書かれているように、次の2つは必ずコードの冒頭に書いてください。 文法チェックと警告が有効に

    第32回 新人さんのためのPerl入門(2) | gihyo.jp
  • Perlからshared objectの関数を呼び出す - limitusus’s diary

    今回のお題 foo.so に含まれている関数 void func(void) をPerlから呼び出す。 プロトタイプ宣言の通り、引数は取らないし戻り値もない(あるいは見ない)。 やりかたはいくつかあって、 普通ならXSモジュールを書いて対応する。 ただこのシンプルな目的のためにXSモジュールを書くのはいささか大袈裟すぎる。 もう少し簡単にやろうと思うと Inline::C を利用する。 これでも別に構わなかったのだけど、今回はこのPerlスクリプトをほぼ同時に並列起動する可能性があり、コンパイルが多重に走るのを避けたい。 ということで、ちょっと珍しいアプローチとしてXSモジュールのベースに使われているDynaLoaderモジュールを直接使ってみることにした。 DynaLoaderとは? Perlで昔からあるコアモジュールで、*.soファイルをロードし、その中のシンボルをモジュール名前空間に

    Perlからshared objectの関数を呼び出す - limitusus’s diary
  • にひりずむ::しんぷる - perl で復数のプロセスからログを吐くときは syswrite または flock すべし

    タイトルですべてを語っていますし、http://blog.livedoor.jp/sonots/archives/32645828.html あたりを読むと良いのですがメモ。 最初にまとめると CORE::print() を使う場合は 4096 or 8192 byte 以下に収めること CORE::syswrite() なら混ざらない 男は度胸。flock(2)する ということです。 これでわかった人は読む必要ありません。 以下蛇足。 はじめに perl ではファイルハンドルに書き込むときには何も考えずに CORE::print() を利用しますが、この人はなんかいい感じにバッファリングしたり、長い文字列だったらぶった切ってくれたりしてくれます。 で、普通はバッファリングのことはみんな意識しているので以下のようにヒットアンドアウェイをやったりしますね。close() で自動的に flus

  • Perl:テストコードの書き方

    Perlはテストコードを作成するためのユーティリティも充実しています。 CPAN モジュールの多くはテストコードを備えているので、サンプルにも事欠かないでしょう。 index Perlの代表的なテストモジュール Test::More がもっとも利用されるテストモジュールのように感じますが、それ以外にも便利なモジュールはたくさんありますし、もちろん、下に挙げた以外にも便利なモジュールはあります。 コードのテスト Test::Simple Test::More Test::Base Test::Most Test::Differences Test::Deep Test::Warn Test::Exception Test::Harness Test::Fatal Test::Declare Test::Output Test::LongString Test::BinaryData Test

    Perl:テストコードの書き方
  • 複雑なデータ構造の中にうまっているデータのパスをさがす方法 - tokuhirom's blog

    Perl5 の場合、Data::DPath をつかえば、 my $data = { foo => { bar => 'candy', }, }; のようなデータから、 say dpath('/foo/bar')->match($hashref); などとして、candy を簡単にとりだすことができます。 しかし、ここで、たとえば以下のように複雑なデータになってしまった場合は、DPath をつくるのがまじめんどいかんじになります。 my $data = { foo => { bar => 'candy', boz => 3, iyan => { bakan => 7, yappo => 'candy', dan => [ 'suspender', 'hige', 'candy'] }, }, }; そんな場合、以下のようなコードをささっと書いてcandyをさがしましょう。 #!/usr/bi