添付ファイル付きのメールを作成・送信するオレオレスクリプトを作ってて、ファイル名とかの扱いが簡単そうだったのでPath::Classを使ってみた。添付ファイルの読み込みもPath::Class(::File)のslurp()
でやろうとしたのだけど、バイナリ・ファイルを添付する時にbinmode
して読み込む方法がわからなくちょっと困った。そしてどうやるのが正解なのかまだわからない……。
Path::Class(::File)のslurp()
を含むopen()
関連のメソッドはIO::Fileを使っているようなので、こういう風に書けばとりあえず目的は達成できるらしい。
use Path::Class;
my $file = file("foo.png");
my $fh = $file->openr();
$fh->binmode();
local $/;
my $content = <$fh>;
slurp()
のコード読んで一行追加しただけ。
use Path::Class;
my $file = file("foo.png");
my $content = $file->slurp(binmode => 1);
とか書きたい。