BIE-Data-HDF5-Path
view release on metacpan or search on metacpan
lib/BIE/Data/HDF5/Path.pm view on Meta::CPAN
package BIE::Data::HDF5::Path;
our $VERSION = '0.01';
use Moose;
use namespace::autoclean;
use v5.10;
use BIE::Data::HDF5 ':all';
use BIE::Data::HDF5::Data;
has 'id' => (
is => 'ro',
isa => 'Int',
required => 1,
);
has 'name' => (
is => 'ro',
isa => 'Str',
lazy => 1,
default => sub {
my $self = shift;
h5name($self->id);
},
);
#only support relative path currently
sub mkPath {
my ($self, $path) = @_;
my @parts = split /\b\/\b/, $path;
my $tmp1 = H5Gcreate($self->id, $parts[0]);
for my $p (@parts[1..$#parts]) {
my $tmp2 = $tmp1;
$tmp1 = H5Gcreate($tmp2, $p);
H5Gclose($tmp2);
}
H5Gclose($tmp1);
}
sub list {
my $self = shift;
h5ls($self->id);
}
sub cd {
my $self = shift;
if (@_) {
my $p = shift;
BIE::Data::HDF5::Path->new(id => H5Gopen($self->id, $p));
}
}
sub openData {
my $self = shift;
if (@_) {
BIE::Data::HDF5::Data->new(
id => H5Dopen($self->id, shift),
);
}
else {
undef;
}
}
sub DEMOLISH {
my $self = shift;
( run in 0.604 second using v1.01-cache-2.11-cpan-39bf76dae61 )