Tie::Fileは少し面白いかも

tieについて調べていたら、Tie::Fileってのが面白そうだったんで使ってみた。

#!/usr/bin/perl
use strict;
use warnings;
use Tie::File;

tie my @array, 'Tie::File', './file_name.txt' or die $!;
foreach (@array) {
  tr/a-z/A-Z/;
}

print sort @array;
untie @array;
exit;

ん〜あまり面白さの伝わらないコードですね。まあ、こんな感じ。ファイルをオープンしないで、その行を配列に対応させたって事なんだが、別に「open」でも同じだよね。

open my $fh, '<', './file_name.txt' or die $!;
foreach (<$fh>) {
  tr/a-z/A-Z/;
}
close $fh

でも、これではファイルに書き込んでないからファイル自身は変更ないね。でも、Tie::Fileで結びつけると、きれいにファイルの中身も変更されちゃいますね。ファイルに対して変更を加える場合にはTie::Fileを利用した方が便利かもしれませんね。わざわざ書き込む手間が省けますから。

まあ〜どっちを使うかはその人しだいだけど、tieってあんまり一般的じゃない気がするから業務では控えた方が良いのかも知れませんね。保守できなくなったら嫌じゃないですか。ではでは