sub new{ my $class = shift; my %cf = ( path => "/vars/wwws/vhosts/auth/files/blog_raw", name => '', atts => [qw(title descr parent ctime)], data => {}, @_); my $self = bless{}, $class; return eval{ my $fh = IO::File->new(); my $perms = keys %{$cf{data}} ? O_RDWR|O_BINARY|O_CREAT : O_RDWR|O_BINARY; $fh->open("$cf{path}/$cf{name}", $perms) or die $!; $self->{ATTS} = $cf{atts}; $self->{FH} = $fh; $self->{NAME} = $cf{name}; $self->{BIN} = keys %{$cf{data}} ? $cf{data} : $self->_parse(); $self; } }