昨日後ろゴケして首着地をキメたら、やはり今日になって首が痛い。
昨日気付いたのだがクッションの絵が間違ってる。Tナットが突き通ってないところが致命的にダメ。こうだよね。
表地まで爪が刺さっているので、締められるけど、緩められない。
ホームセンターに行ったらもっとマシなTナットが売ってた。でも取り付け方法をもう少し考えないといけない。表地に直接つけると、表地のダメージが心配だし。アルミプレートを使おうかなと思っている。
CPAN見るべきな気がするが。File-Binaryの(get|put)_bytesを使うべきなのかね。
use strict;
use warnings;
open my $fd, "<", $ARGV[0];
binmode $fd;
my $size = -s $ARGV[0];
my $size_part = 1000*1000*1000*4 - 1024*1024;
my $buflen = 1024*1024*40;
$buflen = $size_part < $buflen ? $size_part : $buflen;
my $times = $size_part / $buflen;
my $file_count = $size / $size_part;
$file_count++ if ($size % $size_part);
sub copy_part {
my ($name, $file, $times, $length) = @_;
open my $fd, ">", $name;
my $buf = '';
binmode $fd;
for (my $i = 0; $i < $times; $i++) {
unless(sysread($file, $buf, $length)) {
print $fd $buf;
close $fd;
return 0;
}
print $fd $buf;
}
close $fd;
return 1;
}
open my $batch, ">", $ARGV[0].".bat";
print $batch "copy ";
for (my $i = 1; $i < $file_count; ++$i) {
my $name = sprintf($ARGV[0].".%03d", $i);
copy_part($name, $fd, $times, $buflen);
print $batch "/b $name";
print $batch " + " if $i+1 < $file_count;
}
print $batch " /b $ARGV[0]\n";
close $batch;
close $fd;
結局Perlにとってバイナリファイルって何かよくわかってないな。
また環境が変わるんでしばらくPerlを触らない予感。
でもモチベーションない。