Perl
Ubuntu の場合、事前に libwww-perl パッケージをインストールしておく。 use LWP::UserAgent; my $url = "http://www.yahoo.co.jp/"; my $ua = LWP::UserAgent->new(); my $req = HTTP::Request->new("GET", $url); my $resp = $ua->request($req); print $…
作業用ディレクトリに転がってた(使い捨ての)スクリプト。 while(my $line = <>) { chomp $line; $line =~ s/"/\\"/g; print 'document.writeln("' . $line . '");' . "\n"; }
http://d.hatena.ne.jp/Bayside/20080430/p1 より。なるほど、Perl の記号の違いがようやく分かってきた。 なぜ連想配列の変数に値を代入しする場合、右辺は波括弧"{}"ではなく丸括弧 "()" を使うのか、ずっと疑問に思っていたけれど、"%"記号で始まる左辺(…
ここを見ると、連想配列を関数の引数として渡すときは、変数名の前に"\%" をつける。 foo(\%arg); 受けるときは、 sub foo(%) { my ($tmp) = @_; my %arg = %$tmp; print $arg['key'] . "\n"; } とするか、変数名の前に"$$" をつけるといいらしい。 sub foo(…
Perl の場合は、DATA ファイルハンドラとして、__END__ 以後を読み込む機能がある。 while (<DATA>) { print; } __END__ aaaa bbbb cccc</data>
Perlで、連想配列の中の配列に値を push するには、 push @{$hash{'foo'}}, "bar\n"; と書くと動くみたい。Perl ってデータ構造の表現が難しい。 カッコ{}, (), []や記号@, %, $の意味がよく分からなくて困る。例: my %hash; push @{$hash{'foo'}}, "bar\n"…
use File::Copy; copy("file1", "file2");
my $path = shift; exit unless(-d "$path"); opendir(DIR, "$path"); while (defined(my $child = readdir(DIR))) { next unless(-f $child); print $child . "\n"; } closedir(DIR);
use File::Copy; my $foo = shift; my $bar = shift; move $foo, $bar or die $!;
パッケージ libemail-mime-perl をインストールし、Email::MIME を試していたのだが、マルチパートのメールのヘッダーがとれないので悩んでいた。 同じプログラムが Debian (etch) 上だと動くのだが、Ubuntu 7.10 ではだめ・・・。 libemail-mime-perl のバ…
Mail::DeliveryStatus::BounceParser というのもあった。 $ sudo aptitude install libmime-perl と、必要なパッケージをインストール。テストプログラムを作成してどんな結果が出るか見てみた。 fml 同様、いまいちですな・・・。参考にはなるけど。謎なの…
メルマガを発行していてエラーを処理する必要があり、 バウンスメールの解析について調べていた。http://www.fml.org/software/fml8/Documentation/ja/tutorial/error.internal.html を見つけたので、試してみることにした。ftp://ftp.fml.org/pub/fml8/fml-…
よそからもらったデータの中に UTF-8 だが文字化けするデータがある。 日本語以外の文字が混入しているためだ。 1行ごとに UTF-8 から Shift_JIS (CP932) へ変換可能かどうかをチェックしたい。 Perl モジュールにそういった機能がありそうなのだが、探しき…