Perl

use utf8いらんのか

use utf-8はほとんどの場合不要。 perlメモ http://www.rengoku.sakura.ne.jp/program/perl/perl_utf8_001.html じゃあ何のためにあるのかと言えば、perlの処理側に、これはUNICODE文字として処理するよと教えるだけの物です。 具体的に書くと、s…

Mojoliciousでユーザー認証

Qiitaで書いてみた。編集機能がすごい便利で驚いた。はてなもっとがんばって! Mojoliciousでユーザー認証 - Qiita

Mojoliciousメモ

Mojolicious最速マスター - Qiita Home · yuki-kimoto/mojolicious-guides-japanese Wiki Mojoliciousサンプル - サンプルコードによるPerl入門 〜 Perlで楽しくプログラミングを学ぼう 〜 Example applications · kraih/mojo Wiki Mojoliciousリファレンス …

WebSocketを試す

結果はgithubのMarkdownで書いてみた。ymko/mojo-websocket-chat Amazonキンドルで電子書籍出版してみたんだけど質問ある?:キニ速

Class::Accessor::Fast、Class::Accessor::Lite

知った元 Markdown to Inao - naoyaのはてなダイアリー WEB+DB PRESSの記事からソース読んでたら見つけたのでこれ何と。 carton install, bundleしてみたところperl 5.10.1ならpureperlの模様 更に軽量化したのがClass::Accessor::Lite 参考 Class::Accessor…

イントラネット(非インターネット環境)でも依存関係解決してperlモジュールを入れる方法

つまりCarton。革新的すぎてイントラネット(非インターネット環境)が捗る! Carton - Perl module 依存マネージャー(aka Perl用 Bundler) - perldoc.jp コマンドはcartonだが、モジュール名は大文字から始まる $ cpanm Carton とりま、インターネット環境…

Noraneko::Webを起動してみた

Mojolicious - Liteでないアプリの実用的なディレクトリ構造一例 第1回 はじめてのMojo:Mojoを使って自作ウェブアプリをよりポータブルに!|gihyo.jp … 技術評論社 起動の仕方がわからなかったので参照。liteのはあっちこっちに書いてあるのに。。 $ git c…

ハッシュの値でソート

キーでソートは簡単 foreach my $key (sort keys %hash) { # sort by keys } 値でソート(ただしキーにアクセスできない) foreach my $key (sort values %hash) { # sort by keys } こっちならキーもアクセスできる foreach my $key (sort { $hash{$a} cmp …

FurlでBasic認証

ブラウザと同様のアクセスでできる。かしこい! use strict; use warnings; use Furl; use 5.10.0; my $f = Furl->new(); my $res = $f->get('http://user:pass@xxxxx.sakura.ne.jp'); say $res->status_line; # 200 OK 参考 Furl/lib/Furl/HTTP.pm at maste…

LWP::UserAgentからFurlに置き換えてみた

レガシーコードの置き換え。そして高速になった! use LWP::UserAgent; use Furl; sub get_html { my ($url, $opt) = @_; if($opt && $opt eq "lwp") { my $lwp = LWP::UserAgent->new(); my $res = $lwp->get($url); unless ($res->is_success) { return; }…

コマンドエラー時にエラー出力を取得する方法

use strict; use warnings; my $err = `ls /aaa 2>&1`; if($?) { print "ls [$?] [$err]\n"; } __END__ ls [512] [ls: cannot access /aaa: そのようなファイルやディレクトリはありません ]

Perlでマルチスレッドプログラミング1

とりあえず返り値ではまったので #!perl # vim: set ts=4 : use strict; use warnings; use threads; exit main(); sub main { sub going { return (1,2,$_[0]);} sub going2{ return 3 }; my @thrs; push @thrs, threads->new({'context' => 'list' }, \&go…

実行結果をソースに追記する方法

ポイントは2つ :!xxx はコマンドを実行する。%で現在開いているファイルを引数にできる。 :r! xxx はコマンドの結果をファイルに追記する use strict; use warnings; my $double = "double"; my $c = q( single quote ); my $d = qq( $double quote ); my @…

引数チェックネタ

ハッシュを引数にとるサブルーチンでは入り口で明示的な受け取り方をしてほしい - Cside::StudyMemo - Csideグループ deleteしていって・・・なるほど。 よくやる手 my @list = qw( foo bar baz ); foreach (@list) { warn "$_ not defined!" unless exists …

Mojolicious勉強

Mojolicious リファレンス - サンプルコードによるPerl入門 Mojoliciousドキュメント 日本語訳 · yuki-kimoto/mojolicious-guides-japanese Wiki $ cat > hello.pl use Mojolicious::Lite; get '/' => {text => 'Hello World!'}; app->start; $ morbo --list…

Mojolicious試す

インストール $ cpanm Digest::SHA $ cpanm Mojolicious モダンPerlの世界へようこそ:第22回 Mojolicious::Lite:本当に簡単なウェブアプリがあればいいときは |gihyo.jp … 技術評論社 shagadelicでエラーになる・・・? Mojoliciousドキュメント 日本語訳…

Use of implicit split to @_ is deprecated at xxx.pl line x.

こんなエラーが出たので調べてみた どうやらsplitをスカラーで返すと@_を使うらしい。サブルーチンだと引数の@_破壊になる。 素直に一度配列(リスト)にいれましょう。 #/usr/bin/perl use strict; use warnings; use v5.10; say scalar ( split //, "perl"…

よくやる間違い

--- false --- my $dirname = dirname $dir; $xxx = "123" unless $dirname; --- true --- my $dirname = dirname $dir; $xxx = "123" unless -d $dirname;

iandeth. - モジュールをuseした際のメモリ使用量(増加量)を調べてみる DBD::SQLiteの入出力をちゃんと考えてみる - 日曜プログラマのそゞろ事 テーブルの作成・削除・情報表示・定義変更|テーブル:データ定義(SQL文)|MySQL|PHP & JavaScript Room

DBの文字コードUTF-8と仲良くする

DBD::SQLiteの入出力をちゃんと考えてみる - 日曜プログラマのそゞろ事 写経! # vim:set ts=4 ai: use strict; use warnings; use utf8; use DBI; use Encode; binmode(STDOUT, ":encoding(UTF-8)"); # perlcritic で utf8 よりこっちの方が良いとのこと bi…

prefix and the DBI_DRIVER env var is not set

× my ($dbname) = @_; my $dbh = DBI->connect("dbi::Pg:dbname=$dbname", "", ""); $dbh->disconnect; ○ my $dbh = DBI->connect("dbi:Pg:dbname=$dbname", "", "");

DBD::Pgのインストール「Path to pg_config?」を解決する

簡単簡単と思っていたらいきなりエラー $ cpanm DBD::Pg --> Working on DBD::Pg Fetching http://search.cpan.org/CPAN/authors/id/T/TU/TURNSTEP/DBD-Pg-2.18.1.tar.gz ... OK Configuring DBD-Pg-2.18.1 ... N/A ! Configure failed for DBD-Pg-2.18.1. S…

Furlで置き換えてみる

というかFurlで置き換えてみる use strict; use warnings; use LWP::UserAgent; use Furl::HTTP; my $html; $html = get_html2("http://www.google.co.jp"); #$html = get_html("http://www.google.co.jp"); print $html; sub get_html2 { my ($url) = @_; m…

Perlのログ出力について一言

Perlにはログ出力のモジュールが(標準機能として)無い。 Log4PerlとかLog::DispatchとかLog::Minimalとかいろいろあるらしいけれどログローテートまで備えた簡単に使えるものがないので以下のようなものを埋めこんで毎回使っている。 ログサイズととログフ…

Amon2、plack挑戦 →ダメでした

チュートリアルがあったので挑戦してみる。 TinyURLをつくってみよう 〜 軽量フレームワークAmon2入門 (4) 〜 - ”TokuLog 改メ tokuhirom’s blog まずはインストール…いきなりエラー発生 $ cpanm Amon2 Amon2::DBI Fetching http://search.cpan.org/CPAN/a…

SQLiteを使って

sqliteドライバー追加 $ cpanm DBD::SQLite #!/usr/bin/perl use strict; use warnings; use DBI; use Data::Dumper; use utf8; binmode(STDOUT, ":encoding(UTF-8)"); # perlcritic で utf8 よりこっちの方が良いとのこと binmode(STDIN, ":encoding(UTF-8)…

Perl::Critic

perlbrew, local::libを構築(略)、cpanmを入れる→~/bin $ cpanm Perl::Critic えらー $ perl Makefile.PL Writing Makefile for Perl::Critic Writing MYMETA.yml and MYMETA.json Versions of optional/unlisted/indirect dependencies: File::HomeDir = …

Higher-Order PerlのPDFファイルモバイル用

Higher-Order Perl Reformatted with less marginal whitespace for mobile devices

+{...} の意味

検索しにくくてこれが何だったのか悩んでたけれどようやく再発見 たとえば、新しいハッシュを作って、それへのリファレンスを返す関数が欲しければ、 以下のような選択肢があります: sub hashem { { @_ } } # silently wrong sub hashem { +{ @_ } } # ok su…

Higher-Order Perl P.333-334

android - acrobat reader # vim:set ts=2: use strict; use warnings; use YAML; sub cmap (&) { my $f = shift; my $r = sub { my @result; for (@_) { push @result, $f->($_); } @result; }; return $r; } sub cgrep(&) { my $f = shift; my $r = sub { …