ishiducaの日記 このページをアンテナに追加 RSSフィード

2011-08-12

[]バイナリなファイルの読み書き 13:13 バイナリなファイルの読み書き - ishiducaの日記 を含むブックマーク はてなブックマーク - バイナリなファイルの読み書き - ishiducaの日記 バイナリなファイルの読み書き - ishiducaの日記 のブックマークコメント

use IO:All するとよしなにしてくれるらしい。

my $read_file   = 'read.jpg';
my $write_file  = 'write.jpg';
my $buffer;
use IO::All;

$buffer = io($read_file)->binary->all;
# ごにょごにょ
$buffer > io($write_file);

使わない場合にはこう書いてる

$buffer = _read($read_file);
# ごにょごにょ
_write($write_file, $buffer);

sub _read {
    my $file = shift;
    open my $fh, '<', $file or die $!;
    binmode $fh;
    return do { local $/; <$fh> };
}
sub _write {
    my($file, $bin_data) = @_;
    open my $fh, '>', $file or die $!;
    binmode $fh;
    print $data;
    close $fh;
}

以前の _read 関数はこう

sub _read {
    my $file = shift;
    my $size = -s $file;
    my $buf;

    open my $fh, '<', $file or die $!;
    binmode $fh;
    read $fh, $buf, $size;
    $buf;
}

GaganGagan 2013/02/02 09:16 It's good to get a fresh way of loiokng at it.

ゲスト



トラックバック - http://perl.g.hatena.ne.jp/ishiduca/20110812