Perl

ニコニコ動画ダウンローダー

404 Blog Not Found:perl - ニコニコ動画ダウンローダー新認証対応版からの変更点は YAML解析ライブラリは(私がYAML::Syckをインストールしていないので)YAMLに変更 STDINから動画IDを改行区切りで複数渡すことにした nmから始まるIDの動画もあるので動画I…

HTTP::Date

日付8桁(YYYYMMDD)フォーマットの文字列を、Cでいうtime_t*1に変換するのに、PerlではHTTP::Dateが使える。ダンコガイも推奨。 use HTTP::Date; $string = "20080301"; $time = str2time($string); $time -= 60 * 60 * 24; @a = localtime($time); printf…

localtime/timelocal

シェルスクリプトの中で前日日付を求める必要があるが、シェルスクリプトでやるのは大変なので、Perlに丸投げ。 use Time::Local; $year = 2008; $mon = 3; $mday = 1; $hours = 0; $min = 0; $sec = 0; $time = timelocal( $sec, $min, $hours, $mday, $mon…

tr///で空文字への置換には、一工夫

またはまる。tr///では明示的に"\0"を指定しないと空文字への置換ができない。 追記:tr///dオプションでおk…だがtr///の使い方としてそもそも置換後のリストがなきゃ変。→http://builder.japan.zdnet.com/news/story/0,3800079086,20364034,00.htm

コマンドラインオプション

Perl第4回:PerlTips(コマンドラインオプション)

sedとPerlの正規表現で括弧の扱いが違って

はまりました。 bash-3.1$ cat date.txt 2008-05-15 bash-3.1$ sed 's/^\([0-9]\{2\}\)\([0-9]\{2\}\)/\2/g' < date.txt 08-05-15 bash-3.1$ perl -e 'while(<STDIN>){s/(^[0-9]{2})([0-9]{2})/\2/g;print;}' < date.txt 08-05-15http://www.kt.rim.or.jp/~kbk/rege</stdin>…

Crypt::SSLeay

Crypt::SSLeayはppmのモジュール指定ではインストールできないみたいだ。 ppmコマンドでCrypt::SSLeayをインストールするには、モジュール名ではなく、PPDファイルを指定してあげる必要があります。この理由や指定すべきPPDファイルについてはStatus of the …

PPM version 4はGUIアプリ

ActivePerlをv5.8.8 Binary build 822に上げたらppmがGUIになってて吃驚。 ぐぐるとhail2u.net - Weblog - PPM version 4はGUIアプリケーションとかhttp://q.hatena.ne.jp/1162555305が見つかった。

Perlで2次元配列

LWPが便利だという理由で使っているだけの素人なのでPerlの仕様にいちいちひっかかる*1わけだが、今回ひっかかったのはpush(@arr1,@arr2)で、多次元配列(配列の配列)を素直に作れない点。 「配列の配列」と言うイミで行けば「@arrTest = (('a','b','c'),('…

ハッシュのデータ構造

id:shckorさんコメント消しちゃってスミマセン! ハッシュキーは「数値」だ。Perlのソースが手元にあったのでハッシュのデータ構造を見てみたらハッシュキーは32bit unsigned int valueだそうだ。 /* typedefs to eliminate some typing */ typedef struct h…

クロージャ

クロージャは内部状態を保持するコードブロックである。かつ、クロージャのある環境と結びつくことができる。 サンプル sub make_counter { my $k = shift; sub { $k += shift; }; } my $x = make_counter 10; my $y = make_counter 5;my ( $a, $b ) = ( 4, …

連想配列のキー

連想配列のキーの値は文字列しかとりえないから、連想配列のキーに当たるものはクォーテーションマークの有無にかかわらず文字列リテラルとして扱う豪胆な仕様。 サンプル # クォーテーションマークがあったりなかったりmy $a = { name => "kkkkkkkk\n", 1 =…

Perl as OOPL

PerlのOOP機構について楓 software:: ツール開発メモを参考にポイントを書く。

Perl.com:Catalyst 翻訳

PerlのMVCフレームワーク。

Perlで文字列2バイトずつ分割

文字列を2バイトずつに分割したいとき、任意の2バイトに相当する正規表現(..)でパターンマッチしsplitすると、戻り値の配列に空文字が入る。それらを省く形しかないのか、もっとスマートな正規表現はないのか?

Ruby/Perl grep

PerlにおけるgrepとRubyにおけるEnumerable#grepは、パターンマッチングにHitしなかったときの挙動が、それぞれ異なる。 Ruby:Enumerable#grep -> anArray nilを返さない(Hitしなかった場合、空のオブジェクトを返す) irb(main):002:0> s=["Hello"] => ["…

The Python Challenge on Perl

http://www.pythonchallenge.com/のレベル2をPerlで解く。激しくネタばれ注意。

RAA - http-access2

先のエントリのPerlスクリプトについて。LWPライブラリの蓄積に一日の長のあるPerlに軍配を上げていたが、今回は改めてRubyでも同等品がないかRAA - Ruby Application Archiveで聞いてみる。

LWP::UserAgent+Crypt::SSLeay

以前、ワケあってデータをSSL経由でHTTP POSTするPerlスクリプトを作った。 それを再び使用したいので再設定を試みる(現時点で再設定が必要なのは、以前HDDが壊れて、OSやアプリケーションの再インストール等を繰り返したため)。

Perlの文法を持ったJavaベースのスクリプト言語 - Sleep 2.0公開

sumimさん経由で。 http://pcweb.mycom.co.jp/news/2005/07/21/013.html オフィシャルページ:http://sleep.hick.org/ おお、サンプルコードを見ると確かにメッセージ式!http://sleep.hick.org/browser.sl.htmlJavaの文法はバージョンを追うごとにEiffel寄…

Perlによる依存性の注入のデモ

http://d.hatena.ne.jp/tociyuki/20050623/1119539570http://tociyuki.cool.ne.jp/archive/didemo.pl DIContainerへの注釈 http://d.hatena.ne.jp/tociyuki/20050624/1119631599

pack

値をバイナリにパックするPack関数。Perl、PHPには当然のようにあるが、Javaのライブラリにはないのか?

Perlクックブックソースコードリンク集

ここでは、Perlクックブック―Perlの鉄人が贈るレシピ集(urn:isbn:4873110378)のソースコードへのアクセスがしやすいように、ネットワーク上http://www.unix.org.ua/orelly/perl/cookbook/にあるリソースについて、私が作成したリンク集です。Perlクックブッ…

pack

http://mikeneko.creator.club.ne.jp/~lab/perl/numerical_transform/ # 上のお手本どおり $char =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1 )/eg;# しかしどういうわけか、 $char =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1) )/eg; # こちらの方…

Mixi上のデータをダウンロードするスクリプト

toheart.toより。 Mixi上のデータをダウンロードするスクリプトを作った。 http://derangeworld.hp.infoseek.co.jp/source/mixi_pl.txt こっちは受信メッセージを全部ダウンロード http://derangeworld.hp.infoseek.co.jp/source/mixi_messagedl_pl.txt なお…

Perl Date::Simple

前に使おうと思って機会を逸しローカルに残していたDate::Simpleを用いたソース。せっかくなので貼っておく。 use Date::Simple; $today = Date::Simple->new; $firstDate = firstDateOfMonth( \$today ); # 月初日 $lastDate = lastDateOfMonth( \$today );…

Perl コードフォーマッター。 EclipseのPerlプラグイン(EPIC)に組み込んであります。 The Perltidy Home Page

LWP

故あって、SSLアクセスしてCookieを保持したままセッションを張ってデータを連続POSTする簡易User Agentを作る必要があったので、その際に活用したのがLWP。 http://digit.que.ne.jp/work/index.cgi?Perl%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB%2FLWP http://homepa…

% in Perl

$=Scalar, @=Arrayの頭文字のデフォルメだとして、%の連想配列は?