てきとうなメモ

本の感想とか技術メモとか

Perl

LWP::UserAgentでHTTPS proxy越し通信(Cent OS 6)

LWP::UserAgentでHTTPSプロキシ越しに通信する - Qiitaの ## ** See https://metacpan.org/module/Net::HTTPS ## Force use of Net::SSL instead of IO::Socket::SSL $ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS} = 'Net::SSL'; の部分を実施せずにうまくいってい…

perlでパイプを使ってコマンドの入出力をopenした時のエラー処理

closeした時にエラーが返るのか open(my $f, 'ls hoge |'); close $f or die $! ? "error on closing pipe" : "exit status = $?"; $ perl sample.pl ls: hoge: No such file or directory exit status = 256 at sample.pl line 2.closeが失敗するのはパイプ…

nkfで全角半角変換

半角カナを全角カナに $ echo "アイウエオガギグゲゴ" | nkf アイウエオガギグゲゴ全角カナを半角カナに $ echo "アイウエオガギグゲゴ" | nkf | nkf -Z4 アイウエオガギグゲゴ全角アルファベット、数字を半角に $ echo "12345ABCDEabcde" | nkf -Z 123…

perlの-Cオプション

PerlでUnicode文字列処理している時に、utf-8フラグのついたデータをそのまま出力しようとすると「Wide character in print」と警告される。 $ perl -E 'say pack("U*", 0x3042)' Wide character in print at -e line 1. あbinmode使う手もあるけど $ perl -…

X-Forwarded-Hostヘッダの扱い

Railsで自分のサーバ名を知ろうとしてrequest.host_with_portを使おうとして、多段reverse proxy下だったのでめんどうなことになった。Rails(Rack)だと def host_with_port if forwarded = @env["HTTP_X_FORWARDED_HOST"] forwarded.split(/,\s?/).last else…

雑なPerl vol.1

これで正解かな

YAPC::Asia 2014 2日目

Dockerで遊んでみよっかー - @kazeburo Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014 boot2docker使っていたが、話を聞いてるとvagrant+dockerが良い気がしてきた automated build repositoryは便利そう やっぱり実運用に採用するのはいろいろ問題あるか…

YAPC::Asia 2014 1日目

Perl meets Real World 〜ハードウェアと恋に落ちるPerlの使い方〜 - @mackee_w Perl meets Real World // Speaker Deck ハードウェアはRasberry Piをちょっと触ってみたぐらいなのだが、Arduinoとの使いドコロの違いとかの辺りは参考になった。デモの部分は…

実行中のPerlスクリプトのスタックトレースを表示

jbenjore/App-Stacktrace · GitHub こんなツールがあったのか。 $ ps PID TTY TIME CMD ... 2588 pts/0 00:00:00 cpan 2593 pts/0 00:00:00 ps $ perl-stacktrace 2588 [Thread debugging using libthread_db enabled] 0x00007f7bc077d740 in __read_nocance…

Perlの`command`の文字コード

基本的にバイナリで行き来するのでencode/decodeする必要があるのか。 $ cat hoge.txt 日本語 英語 フランス語で、 #!/usr/bin/perl use feature qw(say); use utf8; use Encode qw(encode decode); my $word = "日本語"; my $enc_word = encode('UTF-8', $w…

Perlの識別子の最大長はなぜ251文字なのか

YAPC::Asia Tokyo 2013のPerl◯×クイズで、251文字までということを知ったので、なんで255文字でなく251文字なのかなと思ってちょっと調べた。結論からいうと実装上の問題っぽい。でも、253文字にもできるんじゃないかなという気がした。識別子の長さ制限がつ…

YAPC::Asia Tokyo 2013 2日目

はてなのイマドキの開発フロー - onishi Hatena blogdevelopmentflow 強制的にレビュー時間を設けるとかタスクのおみくじの結果で割り当てるとかは良い仕組みな気がする。 これからのPerlプロダクトのかたち - goccy54 これからのPerlプロダクトのかたち(YAP…

Perldoc文字化け問題

$ perldoc SomeModule You have an old groff. Update to version 1.20.1 for good Unicode support. If you don't upgrade, wide characters may come out oddly.perldocが一部文字化けして、上記のようなエラーがでた場合はgroffが古いのでupdateすれば良…

YAPC::Asia Tokyo 2013 1日目

行ってきた。 Postcards from the Edge: The State of Perl 5 Development - rjbs Perl5.18の新機能とPerl5.20に実装されそうなものについての紹介。postfix dereferenceは直感的に書きやすいかも push @{$ref_of_array}, "hoge"; を push $ref_of_array->@*…

Perl7

Perl 7 | Ovid [blogs.perl.org] At the risk of starting a massive flame war, I have only one question: what are the pros and cons of releasing Perl 5.20.0 as Perl 7.0.0? わらた。Java(1.5→5.0)やSolaris(2.7→7)みたくマイナーバージョンをメジ…

perl5.16.0のperldocで警告がでる

$ perldoc perl You have an old groff. Update to version 1.20.1 for good Unicode support. If you don't upgrade, wide characters may come out oddly. at /Users/boscono/perl5/perlbrew/perls/perl-5.16.0/lib/5.16.0/Pod/Perldoc.pm line 1346. You …

use encodingは使わない

古いコードの移植でuse encoding 'euc-jp'を使っていたらいろいろはまってしまった。使わない方が良いね。以前からいろいろ言われていたし。 404 Blog Not Found:perl - use encoding; #は黒歴史 あと、Programming Perl(4th edition)をこの間購入したら、こ…

Perlの$@%の覚え方

Perlの場合はスカラー(Scalar)の「S」として使っているのかもしれません(推測で書いてます)。 (中略) 話がそれますが、Perlの配列変数を示す「@」は「a」に似ているので「Array」を意味しているのかもしれません(これも推測です)。また、ハッシュ変数…

Shellのシングルクォート

Shellのシングルクォートはエスケープしないのでシングルクォートの中でシングルクォートを利用することができない。 Enclosing characters in single-quotes ( '' ) shall preserve the literal value of each character within the single-quotes. A singl…

Perlの正規表現のグルーピング

$ perldoc perlhist ... Perl 1 introduced Perl to the world, and changed /\(...\|...\)/ to /(...|...)/. \(Dan Faigin still hasn't forgiven me. :−\) となっていて、Perl version 0の頃はsed形式だったんだなと。変えた理由は想像がつくけど、一応調…

perldocのcompletion

Big Sky :: perldocのbash-completionが激しく便利でうれしょん出た。 ubuntuのbash-completionでもできるんじゃないかと思って試したらできた $ perldoc IO IO IO\:\:Compress\:\:Zip IO\:\:Seekable IO\:\:Uncompress\:\:Base ...ubuntuの方はprefixが一致…

YAPC::Asia 2009 2日目

How regular expressions work internally - José Castro (cog) cog ポルトガル在住 sapo Googleより古い.yahooみたいなもの 100 techs "Hello World" =~ /World/; Hello Worldに対してWorldをずらしていき,最初の文字(W)をまずmatchさせ,次の文字(o)がma…

YAPC::Asia 2009 1日目

今年も行ってきたので.敬称略.間違いは訂正します.途中までしかまとまっていないがとりあえずup(追記)別記事になっていたのでとりあえず修正 (追記)抜けていた部分を追加 Welcome - Daisuke Maki (id:lestrrat) id:lestrrat http://mt.endeworks.jp/d-6/ …

perlとrubyのバグ?

Journal of Ovid (2709) バグではないのだけどもちょっと面白かった.これはすぐわかったんだけども $ perl -e 'print 8**(1/3)' 2 $ ruby -e 'print 8**(1/3)' # 2ではない 1$ ruby -e 'print -1**(1/2.0)' # √-1ではない -1.0こっちはちょっと時間がかかっ…

CPAN Top 100

The CPAN Top 100 cpanのモジュール間の依存関係からtop 100を算出している.heavy 100はそのモジュールが依存するモジュールの多い順,volatile 100はそのモジュールに依存するモジュールの多い順に計算されている.volatile 100にTest::*やExtUtils::*が入…

non-capturing parentheses

でも、そうでなければ、どのような時に?:という余分な2文字をわざわざ記述する正当な理由があるのだろうか? L'eclat des jours(2008-11-26) (?:...)のメリットはキャプチャしないのでパフォーマンスが上がるという部分がメリットと思っていた.でも測ったこ…

Hidden features of Perl

Hidden features of Perl - Stack Overflow 知らなかったものを抽出してみる. sigil For example, did you know that there can be a space after a sigil? $ perl -wle 'my $x = 3; print $ x' 3 sigilの後の空白は無視される.$に限らず他のsigilでもそう…

Filesys::Tree

macにはtreeコマンドが入っていないようなのでFilesys::Treeをインストールした.これをインストールするとPerlで書かれたtreeコマンドもインストールされる.linuxとかに付属しているtreeと比べると機能が少ないのだが,普通に使っている分には十分. $ tre…

Perlのstable quicksort

stableなquicksortないかなと思っていろいろ探していたらPerlのquicksortがstableな実装だった.perl5.10.0のpp_sort.cより引用.Perlのquicksortについては以下のようなデータ構造を利用している. indir list1 +----+ +----+ | | --------------> | | ----…

split

split の研究 - bkブログ Perlの部分がちょっと違う.分割対象が省略されると$_が対象になり,そうするとパターンも省略可能. $ perl -MData::Dump=dump -E '$_="a\tb c"; say dump split;' ("a", "b", "c") $ perl -MData::Dump=dump -E '$_=""; say dump …