Perl

PODって何の略?

ドキュメントはPOD(プリント・オン・デマンド)フォーマットで書かれ、 .pm ファイルの中に含まれています。 プレイン・オールド・ドキュメント*1の略だと思ってたんだけど、違ったのか。その場で変換、みたいな意味かな。 と思ってぐぐってみたけど、なんか…

コマンドラインのエスケープ

Windowsのコマンドライン(cmd.exe)からPerlのワンライナー書こうとして、「"」のエスケープがうまくできなくて困った。 sub quote_for_command { my $r = ""; while (@_) { my $arg = shift; $arg =~ s/\%/^\%/gs; $arg =~ s/"/"""/gs; $r .= " " if $r ne "…

YAML確認

まだ寝てなかった。 http://d.hatena.ne.jp/hakobe932/200607 らへんを眺めてたら、YAMLのお勉強 - はこべにっき ♨とかあったので、まねしてみた。 perl -MYAML -MData::Dumper -e "print Dumper Load join'',<>" config.yamlこれでちゃんと書けてるか確認で…

ネットワークプログラミングな感じ。

ちょっと、いろいろと。 サーバなテスト。 クライアントなテスト。

学内無線LANのferecとかいうのに自動でログインしてみる。

ついでにブラウザのプロキシも変更。*1 #! /usr/bin/perl use strict; use warnings; use LWP::UserAgent; # パスワード入力時にエコーを消すために使う。 use Term::ReadKey; # プロキシの設定ファイル。 my $proxy_file = 'C:/proxy.txt'; # プロキシの設…

$ perl -e 'open F, ">zzzz"; select F; system "date";' ; echo [ `cat zzzz` ] 2006年 2月 16日 木曜日 00:16:13 JST [ ]$ perl -e 'open STDOUT, ">zzzz"; system "date";' ; echo [ `cat zzzz` ] [ 2006年 2月 16日 木曜日 00:15:48 JST ]なるほど。syst…

mixiの最新情報をチェックしたり、書き込んだりするスクリプト。

衝動的に作ってみた。 mixiとかやると、最新情報が表示されて、 mixi ファイル名とかやると、そのファイルの中身をmixiに書き込みますよ。 #!/usr/bin/perl use strict; use warnings; use Jcode; use LWP::UserAgent; use HTTP::Cookies; use URI; $| = 1; …

名前からIPアドレス。

JEDでやれば、red01、とかだけでも大丈夫。 学校からw3mでmixiにメモしといたら、改行が消えてた。そういえば、はてなでもプレビュー経由すると改行が消えるんだっけか。 $ perl -e 'for( @ARGV ){( $name, undef, undef, undef, @addrs ) = gethostbyname $…

01, 02, 03, …の作り方。

知らんかった。 "01" .. "03"ってやると、("01","02","03")なリストになる。こんな感じ。 $ perl -e 'print join( ",", "010" .. "020" ), "\n"' 010,011,012,013,014,015,016,017,018,019,020'"'を忘れると、8進法になるので注意。 $ perl -e 'print join( …

red01\nred02\n…を出すスクリプト。

red01 red02 red03 red04 みたいなのを、 command red 01 - 04 とかで出力できるスクリプト。*1 #! /usr/bin/perl use strict; use warnings; my $arg = join " ", @ARGV; for( split /,/, $arg ){ my( $word, $numbers ) = /(\w+?)\s*([\d\-\s]+)/; next un…

文字数取得。

ある整数の桁数を求めようとして、 $ketasuu = split //, $number;とかやったら、 Use of implicit split to @_ is deprecated at machinefile.pl line 24.とか言われた。 syntax OKだそうだから、warningだよね。 perldoc見てみたら、scalar contextでは、@…

Perlのスクリプトをダブルクリックで実行したいなぁ、と思いついて、Windowsのバッチファイルの使い方を調べてみた。*1 *2 何でバッチファイルを使おうと思ったかというと、 cygwin の shell を経由せずに実行できるのかなぁ。 ↓ そういや cygwin の shell …

まとめりゃいいじゃん、と思ったので、まとめた。 あー、そんなことより、課題やれ、って感じだよなぁ。 #! /usr/bin/perl use strict; use warnings; my $usage = "usage: $0 data_filename [tail] [sleep_time]"; my $datafile = shift @ARGV or die "$usa…

タブで区切られた値を、2個づつ取って、gnuplotで表示。 #! /usr/bin/perl use strict; use warnings; my $usage = "usage: $0 data_filename"; my $datafile = shift @ARGV or die "$usage\n"; my $sleep_time = 0; open DATA, "< $datafile" or die "can't…

Crypt::SSLeayのインストール。

http://d.hatena.ne.jp/kou21058/20051203/p3をほっといたのを思い出して、Crypt::SSLeayをインストールしてみた。 OpenSSLとやらが必要っぽかったけど、とりあえずcpanでインストールしようとしてみた。 cpan> install Crypt::SSLeayFound OpenSSL (version…

gnuplotで、矢印ぐるぐる。

昔、実験で、振り子がゆらゆら、とかあったなぁ、とか思い出して探してみた。 3nen/jikken1/j7/s1/とかいうとこにあった。*1 set xrange [-11:11] set yrange [-11:11] set size 0.75, 1 set nokey plot 0 0 set arrow 1 from 0,0.000000 to 0.993896,9.7494…

detaファイルから最大値と最小値を取り出す。

perl -ne'next if/^#/;($x,$y)=/^(\S+)\t(\S+)$/ or die;$mix=$x if($mix>$x);$max=$x if($max<$x);$miy=$y if($miy>$y);$may=$y if($may<$y);' -e'END{print "x[${mix}:${max}]\ny[${miy}:${may}]\n"}' dataEND{}で囲まないと、最後に実行してくれない。*1 …

Perl::MinimumVersionをインストールしてみた。

CPANからPerl::MinimumVersionをインストールしてみた。 関係あるモジュールがいっぱいあるらしく、いろいろインストールしてたらしい。 僕はEnter押してただけだけど。 インストールすると、perlverとかいうコマンドが使えるようになるらしいので、さっそく…

Perl::MinimumVersion

最低必要なperlのバージョンを教えてくれるらしい。 http://search.cpan.org/search?query=MinimumVersion&mode=all http://search.cpan.org/~adamk/Perl-MinimumVersion/ あとで確認する。 バージョンごとの細かい違いとか、どっかに一覧あったりするのかな…

http://d.hatena.ne.jp/kou21058/20051021/p1が使えなくなってたので、ちょっと修正。 #!/usr/bin/perl use strict; use warnings; use LWP::UserAgent; use HTTP::Cookies; use URI; $| = 1; # formを含んだhtmlをgetするためのurl。 my $login_url = 'http…

寝ぼけて書いたものなので、と、先に言い訳しときます。 LWPを使ってみる目的で作った、データベース論のpdfを落としてくるスクリプト。 参考 : http://homepage3.nifty.com/hippo2000/perltips/LWP.html #!/usr/bin/perl use strict; use warnings; use LWP…

http://dev.razil.jp/ ちょっと気になる。

日付関係。

簡単なカレンダーみたいなもの作ろうとして、Perlで日付*1を扱う方法、知らんなぁ*2、と思って調べてみた。 http://bulknews.net/lib/mailmag/31/mag.txt http://perldoc.jp/docs/modules/Date-Simple-2.03/Simple.pod Date::Simpleというのが使えるらしい。…

CGIをテストする2。

http://d.hatena.ne.jp/kou21058/20050615/p2からちょっと進化。POSTに対応。少しはマシになった、気がする。 ところで、これじゃ画像が見れないじゃん。 #! /usr/bin/perl use strict; use warnings; use IPC::Open2; use Socket; my $script = $0 . ".cgi"…

IPC::Open2

双方向のパイプ。 参考 : http://perldoc.jp/docs/perl/5.6.1/perlfaq8.pod の"How can I open a pipe both to and from a command?" #! /usr/bin/perl use strict; use warnings; use IPC::Open2; open2( \*R, \*W, "sort" ); print W "a\nB\n1\n99\n09\n";…

CGIをテストする。

Apache*1入れればいいんだろうけど、めんどい*2ので、作ってみた。http://localhost:12345/で試せる。ただし全部GET*3。あと、多分CGI.pm使ってないとダメ。 とりあえず、今作ってるのは、これで大丈夫だから、まぁいっか、とか。 #! /usr/bin/perl use stri…

プログラミングPerl〈VOLUME1〉の19章からメモ。 スイッチとかフラグとかとも呼ばれるらしいけど、なぜだか"コマンドラインオプション"がしっくりくるので、そう呼んでる。 "perl -h"とか"perldoc perlrun"でもいろいろ見れるけど、英語わからん。 -- 以後の…

バックアップを元に戻す。 perl -e 'for(@ARGV){ ($nn)=/^(.*).bak$/; rename $_,$nn or die "cannot rename $_,$nn; $!"; }' *.bak

XML::Parserのいんすたーる

http://sourceforge.net/projects/expat/ のまんなからへんの"Download"ってとこをクリック。 "Download expat-1.95.8.tar.gz"をクリック。 JAISTのとこからダウンロード。 tar --gzip --get --file expat-1.95.8.tar.gz cd expat-1.95.8 ./configure --pref…

XML::Parser

expatというのが必要らしい。入れられるのか!? http://www.jclark.com/xml/expat.html