perl

Read It Later からはてブに登録する

多くの iPhone アプリでは、あとで読む系は Read It Later (以下 RIL) が多いので、RIL に流しているが、通常ははてブを使っているため、RIL に登録した URL をはてブに集約したい。というか、仕事から現実逃避したいので、コード書きたい。というわけで、以…

utf8フラグ

Encode::decode #!/usr/bin/perl # utf8 で保存しとくこと use strict; use warnings; use Data::Dumper; use Encode; my $input = "あ"; print Dumper($input); #=> $VAR1 = '縺・; バイト列 print Dumper( decode("utf8", $input) ); #=> $VAR1 = "\x{3042…

POP3でメールを落として、MboxParserでゴニョる

#!/usr/bin/perl use strict; use warnings; use Mail::POP3Client; use Mail::MboxParser::Mail; my $user = "username"; my $pass = "password"; my $host = "example.jp"; my $ssl = 1; my $pop = new Mail::POP3Client( USER => $user, PASSWORD => $pas…

printf で揃える

#!/usr/bin/perl use strict; use warnings; my @host = ( { 'hostname' => "host1", 'size' => 613475, 'used' => 16551 }, { 'hostname' => "host2", 'size' => 613501, 'used' => 15214 }, ); printf "%-5s %8s %8s %8s %4s\n", "Host", "Size", "Used", …

mbox形式からメール本文と添付ファイルを抜く

#!/usr/bin/perl use strict; use warnings; use Mail::MboxParser; use DateTime::Format::Mail; my $mbox = $ARGV[0]; die unless ($mbox); my $mb = Mail::MboxParser->new($mbox, decode => 'ALL', parseropts => { enable_cache => 1, cache_file_name …

日付文字列の変換

DateTime::Format::Mail #!/usr/bin/perl use strict; use warnings; use DateTime::Format::Mail; my $date = "Thu, 17 Jun 2010 00:00:35 +0900"; my $dt = DateTime::Format::Mail->parse_datetime($date); print $dt->ymd(""), "\n"; $ ./rfc2822date.pl…

改行の削除

open my $fh, '<', $file or die $!; while (<$fh>) { # chomp; s/\r?\n$//; # 0D0Aのときがあったので push @list, $_ unless /^$/; } close $fh; レコード区切り文字 $/ を設定して chomp してもいいのだが、Windows だと 0D0A、Linux だと 0A となり、フ…

メール送信

#!/usr/bin/perl use strict; use warnings; use utf8; use Encode; use Date::Simple 'today'; use Email::Send; use Email::MIME::Creator; my $SUBJECT = '件名です'; my $FROM = 'from@example.jp'; my $TO = 'to@example.jp'; my $SMTP_SERVER = '192.1…

DateTime

#!/usr/bin/perl use strict; use warnings; use DateTime; my $dt = DateTime->now( time_zone => 'Asia/Tokyo' ); my $expire = $dt->add( months => 3 ); # 今日の3ヶ月後 print $expire->ymd, "\n"; printf "[%s] ", $dt->strftime('%Y-%m-%d %H:%M:%S')…

use English

#!/usr/bin/perl use strict; use warnings; use English '-no_match_vars'; $0 を $PROGRAM_NAME のように、特殊変数をわかりやすい変数名として使う。-no_match_varsで、正規表現時の $`, $&, $' を使わない。

オプション

#!/usr/bin/perl use strict; use warnings; use Getopt::Std; $Getopt::Std::STANDARD_HELP_VERSION = 1; # standard-conforming behaviour our( $opt_v, $opt_h, $opt_a, ); getopts('vha:'); print "v: $opt_v\n" if ($opt_v); print "h: $opt_h\n" if ($…

CPAN設定をやり直す

> cpan cpan> o conf init > vi C:\strawberry\perl\lib\CPAN\Config.pm 'http_proxy' => q[http://192.168.0.1:8080],