タグ

Perlに関するtouhousintyakuのブックマーク (51)

  • startコマンドでバッチファイルや内部コマンドはcmd/kで起動される。 - Windows Script Programming

    start echo aaa start aaa.cmd などは、cmd/kで起動されるので、コンソールが閉じません。 コンソールを閉じるためにexitを入れるなんぞは末転倒です。 バッチファイルや内部コマンドは、start cmd /cで。 start cmd /c echo aaa start cmd /c aaa.cmd

    startコマンドでバッチファイルや内部コマンドはcmd/kで起動される。 - Windows Script Programming
  • Win32::GuiTest で Windows の GUI アプリをハックしよう

    的な書き方 use strict; use warnings; use utf8; # ↑ Perl ハッカーに DIS られなくなるおまじない # Win32::GuiTest を使うおまじない use Win32::GuiTest qw(:ALL); # 日語を使えるようにするおまじない UnicodeSemantics(1); # ここで Win32::GuiTest を使う マウスを動かす use strict; use warnings; use utf8; use Win32::GuiTest qw(:ALL); # 小数点もいけちゃう sleep 関数 use Time::HiRes qw(sleep); UnicodeSemantics(1); for (my $i = 0; $i < 500; $i++) { # 10 ms 待つ sleep(0.01); # マウ

  • perl: 生 & 死 == 愛 : 404 Blog Not Found

    2012年03月27日14:45 カテゴリLoveLightweight Languages perl: 生 & 死 == 愛 これは素敵すぎてこちらでも紹介せざるを得ない。 2012.03.27 初出 2022.05.06 更新 miyagawa's gist: 2212589 ― Gist #!/usr/local/bin/perl use 5.028; # say, &. # surprisingly this works *only* in bytes semantics from perl 5.28 # # use utf8; # binmode STDOUT => ':utf8'; say my $life = '生'; say my $death = '死'; say $life &. $death; Siriの台詞はウソですが、こちらは当です。 Dan the Love

    perl: 生 & 死 == 愛 : 404 Blog Not Found
  • 第7章 正規表現

    正規表現とは、ある特定の文字列ではなく、文字列の一部をパターン化して表現する手法をいいます。 複数行ある文章の中から文字列を検索する時に、検索したい文字列すべてを指定するのではなく、文字列の任意の一部を置き換え可能な状態にして検索をする場合に正規表現を用います。 たとえば、UNIXやWindowsでは、文字列を検索するときに使用される正規表現として、「*」を任意の文字列(空き文字も含む)に、「?」を任意の1文字として使用することができます。パターンを、app* と表現すると、 apple application appeal などの文字列がマッチすることになります。 この正規表現の方法は、当然ながらプログラム言語ごとに異なりますが、Perlの場合は他の言語に比べて非常に強力な正規表現によるパターンマッチ機能を備えており、より詳細にかつ容易にパターンマッチを行うことができるとされています。

  • ランダムな文字列を生成するString::Random - Unknown::Programming

    普段から良く使うんでメモ。 DBとかにユニークな値を突っ込む時とかにランダム文字列生成とかよくあること。 で、Perlでランダム文字列を生成しようと思ったらString::Randomがオススメ。 色々作り方があるんだけど一番便利なのはrandregexメソッド。 use String::Random; my $rand_str = String::Random->new->randregex('[A-Za-z0-9]{32}'); こんな感じで正規表現が指定できるので上記のように書くと32桁の英数字でランダムな文字列を生成してくれる。 ちなみにDBに突っ込む目的ならDBIx::Class::RandomStringColumnsってのがString::Randam使用して勝手に突っ込んでくれたりするので便利だったりする。

    ランダムな文字列を生成するString::Random - Unknown::Programming
  • lleval - run codes from your browser

    LLEval is now obsoleted by evalpark. As a matter of fact, lleval just calls evalpark in the background. #!/usr/local/bin/perl use strict; use warnings; use YAML; use Data::Dumper; my $n=1; print "DATA[",$n++,"]:$_" for <DATA>; print Dumper(\%ENV); print YAML::Dump(\%INC); use Test::More 'no_plan'; is(1,1); is(1,0); __DATA__ use this instead of STDIN like this. What is This? An AJAX service which r

  • Perl の数値変換

    Last Updated: 2002/03/26 Perl で、16進文字列、10進整数、2進文字列、バイナリー文字列の相互変換を行うための、スクリプトメモです。 特に断っていない限り、Perl 5.001 以上で動作します。 目次 16進文字列からの変換 10進整数からの変換 2進文字列からの変換 バイナリー文字列からの変換 16進文字列→10進整数への変換 hex() 関数は、16進文字列を整数値に、手軽に変換できます。 $num10 = hex("4A"); # $num10 には 74 が入る $num10 = hex("FFFFFF"); # $num10 には 16777215 が入る 余談ですが、数値リテラル中では 0x に続けて 16 進数で記述することで、数値を表すことができます。 $num10 = 0x4A; # 74 $num10 = 0xFFFFFF; # 1677

  • 文字列をn文字ずつ分割 - シリコンの谷のゾンビ

    以前,split//を使って文字列を一文字ずつ分割という方法を学んだけれど,今度はn文字ずつ分割をしたい. どうやらsplitではできなさそうなので,正規表現を使う. # これでよい my @array = $str =~ /.{2}/g; # 直接スカラーに入れるのであればこうする my ($hh, $mm, $dd) = $str =~ /.{2}/g; これは便利!何ら新しい知識を使わずに解けた.

    文字列をn文字ずつ分割 - シリコンの谷のゾンビ
  • Inline::x86でPerlの中に直接機械語を書く - JPerl Advent Calendar 2009

    Inline::x86でPerlの中に直接機械語を書く - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 前置き こんにちは、id:TAKESAKOです。最近コロプラにハマるようになってきて近郊遠方の国内出張が楽しくなりました。JPerl Advent Calendar 2009 Hacker Trackも9日目ですね。そろそろPerlのソースを読むだけでは飽き足らずx86の機械語を書きたくなってきたんじゃないでしょうか。そんなわけで、今日は稚拙のInline::x86を紹介します。 題 皆さんの中にはよくx86を書く方もいらっしゃると思いますが、x86機械語を含むコードインジェクションは実行環境の設定が結構大変ですよね。Linuxのシステムコールmprotectを呼び出して実行ビットを追加で指定した

  • APIへの問い合わせを高速化したい - あふひねこのにき

    結論 Furlは非常に速い。でも、AnyEventの方が仕事が早く終わった。 今回は、相手サーバーが応答してデータを取得するまでの時間の方がボトルネック。 なお、結果として次の動画を作るのにとっても役に立った。 ときどきAEでAPI叩いているとエラーが返ってきましたけど。 背景 nicomas.sqlite用にデータを取得するperlスクリプトの実行に時間がかかっているのを何とかしたい。 135,000件以上の「アイドルマスター」タグのついた動画があるので、時間がかかるのはしょうがないけど、工夫できないだろうか。 なお、環境はstrawberry perl 5.12.1 built for MSWin32-x86-multi-threadをWindows XPで動かしています。 現状 タグ検索ページをスクレイピングして動画IDを取得 動画IDリストをもとに、APIへ問い合わせ 取得データを

    APIへの問い合わせを高速化したい - あふひねこのにき
  • vim × Perl のコンパイルを簡単にするコマンドと設定 (Perl.vim) - iDeaList::Writing

    perl.vimコンパイラプラグインで、Perlコードをクィックフィックスする。 — 名無しのvim使いのエントリーを読んで、 デフォルトでPerl.vimが入ってるという事を知ったのが数週間以上前。 便利すぎてすごくショックだったのでメモメモ。 Perl.vimとはなにか 概要 compilerディレクトリにあるperl.vimコンパイラプラグインを使うと、 Perl言語で書かれたコードの文法チェックと、QuickFixリストを利用したコードの修正作業を手早く行えます。 インストール方法 perl.vimコンパイラプラグインは、デフォルトでインストールされています。 perl.vimコンパイラプラグインで、Perlコードをクィックフィックスする。 — 名無しのvim使い 1) Perlコンパイラの選択 :compilerでコンパイラの選択 vim docs :comp[iler][!]

  • おさかなラボ - Coroでより賢い非同期クローラを作る

    前回のエントリでは簡単なクローラの作り方を説明した。しかしこのクローラには欠点があり、取得したいURLが何千何万とある場合、一度にhttp_getが走ってしまい、リソースを使い切ったり同じサーバーへのアクセスを待つ間にタイムアウトしたりと都合が悪かった。そこで今回はAnyEventに加えCoroを使うことにより、並列を使ってリソースへの同時アクセス制限を行うクローラの書き方を解説する。 これは前回のエントリの改良版になるので、初めてこれを読む方は当該エントリを先に読んで頂きたい。 まず、前回はAnyEventを使い、condvarとsend-recvを使ってイベントの監視をしていたが、Coroと同時に使う場合これでは都合が悪い。イベントループを回す場合、一般的にAnyEventはrecvを、Coroはjoinを使うが、これらはどちらもイベントループが終わるまでブロックするのでどちらかし

  • おさかなラボ - 非同期の簡単なクローラの作り方

    そろそろ(いまさら)Coro+AnyEventでもやってやるか!と思って簡単な並列クローラを作ることにしたのだが、ググって出てくるサンプルを見てもいまひとつうまく動いてくれない。 で、そういえばYAPC::Asia 2009でmala.さんがAnyEvent::HTTPを使うとこんなに簡単にできるよ!と言っていたので、スライドの通りにやってみた。 use AnyEvent::HTTP; sub done { print @_; } http_get ("http://www.example.com/“, \&done); # 1 http_get (”http://www.example.com/“, \&done); # 2 http_get (”http://www.example.com/“, \&done); # 3 –mala氏 main.txtから引用。 こ

  • おさかなラボ - Time::HiResでの礼儀正しい経過時間計測法

    まあマニュアル通りなんですが。 use Time::HiRes (qw/time gettimeofday tv_interval/); まちがい $time = time; # do something $elapse = time - $time; 正しい $time = [ gettimeofday ]; # do something $elapse = tv_interval $time; # 2つのポイント間を計りたい場合は第二引数にも参照を渡す マニュアルより。 time - NOTE 1: This higher resolution timer can return values either less or more than the core time(), depending on whether your platform rounds the higher res

  • Perl 非同期プログラミング

    論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation

    Perl 非同期プログラミング
  • マッチした回数を知るには - OKWAVE

    たとえば$testの中に "abc"という文字列がいくつ(何回)含まれているか? ということを知りたい場合、 どのようにコーディングすればよいのでしょうか? 初歩的な質問で恐縮ですが、どなたかご教示ください。 よろしくお願いします。

    マッチした回数を知るには - OKWAVE
  • ActivePerl 5.12.1 で PAR::Packer をバッチインストール(追記あり)

    注意:この方法を使うと PAR::Packerのtestを実行せずにPAR::Packerがインストールされます。これは、2010年5月22日現在、PAR::Packer v1.004をビルドすると、ppの--iconオプションのテスト(t/20-pp.tのautomated_pp_test.pl)で失敗するためです。つまり、ppで--iconはエラーになります。 下記の記事を読んで久しぶりにActivePerlを触ってみたくなりました。 ActivePerl 5.12 で PAR::Packer をインストール - blog.remora.cx 私は新しいバージョンのperlを試すとき、まず、PAR::Packerのインストールをします。 参照記事のように自分でMinGWをインストールすることを覚悟の上でActivePerl 5.12.1をダウンロードppmを起動してMinGWなんか探し

    touhousintyaku
    touhousintyaku 2011/03/06
    参考になった
  • 『Perlでファイル内の重複行を取り除く』

    Perlでファイル内の重複行を削除して表示したい場合、リスト内の同じ値を取り除く場合同様、 ハッシュを使えば簡単にできます。 del_dup.pl my %hash = (); while(<>) { print unless $hash{$_}++; } ファイル(happybirthday.txt)で実行した結果 % cat happybirthday.txt Happy Birthday to You! Happy Birthday to You! Happy Birthday Dear Tux! Happy Birthday to You! Happy Birthday Dear Tux! % del_dup.pl happybirthday.txt Happy Birthday to You! Happy Birthday Dear Tux! ファイル内容をソートして、重複行を削

  • Perl で Win32::API プログラミング入門 - 竹迫の近況報告

    ActivePerl (Windows版) には Win32::API - Perl Win32 API Import Facility - metacpan.org が付属しているので、今日からすぐに Win32::API を利用したプログラミングが出来ます。 簡単なメッセージボックスを表示するPerlプログラムは以下になります。 #!/usr/bin/perl use Win32::API; my $MessageBox = Win32::API->new("user32", "MessageBoxA", "NPPN", "N"); $MessageBox->Call(0, "Hello, World!\n", "Message", 0); このプログラム実行すると、「Hello, World!」と書かれたWindowsメッセージボックスが表示されます。 これを Win32::API

    Perl で Win32::API プログラミング入門 - 竹迫の近況報告
  • Perl公式ドキュメント日本語版

    このサイトは Perl の公式ドキュメントを日語翻訳したものを表示するサイトです。翻訳データは、perldocjp project からとってきたものです。 類似のものに perldoc.jp がありますが、それよりもみやすくなるようにがんばってみました。 ドキュメント一覧 概要(overview) perl - Perl の概要 perlrun - perl コマンドの実行とオプションについて チュートリアル perldebtut - デバッグのチュートリアル perlopentut - Perl でいろんなものを開くためのチュートリアル perlpacktut - pack と unpack のチュートリアル perlreftut - Mark によるリファレンスに関するとても短いチュートリアル perlretut - Perl の正規表現のチュートリアル perlt