package File::Find::Object::Result; use strict; use warnings; use integer; use Class::XSAccessor accessors => { (map { $_ => $_ } (qw( base basename is_dir is_file is_link path dir_components stat_ret ))) } ; use Fcntl qw(:mode); sub new { my $class = shift; my $self = shift; bless $self, $class; return $self; } sub full_components { my $self = shift; return [ @{$self->dir_components()}, ($self->is_dir() ? () : $self->basename()), ]; } 1; =head1 NAME File::Find::Object::Result - a result class for File::Find::Object =head1 DESCRIPTION This is a class returning a single L result as returned by its next_obj() method. =head1 METHODS =head2 File::Find::Object::Result->new({%args}); Initializes a new object from %args. For internal use. =head2 $result->base() Returns the base directory from which searching began. =head2 $result->path() Returns the full path of the result. As such C<< $ffo->next_obj()->path() >> is equivalent to C<< $ffo->next() >> . =head2 $result->is_dir() Returns true if the result refers to a directory. =head2 $result->is_file() Returns true if the result refers to a plain file (equivalent to the Perl C<-f> operator). =head2 $result->is_link() Returns true if the result is a symbolic link. =head2 $result->dir_components() The components of the directory part of the path starting from base() (also the full path if the result is a directory) as an array reference. =head2 $result->basename() Returns the basename of the file (if it is a file and not a directory.) Otherwise - undef(). =head2 $result->full_components() Returns the full components of the result with the basename if it is a file. =head2 $result->stat_ret() The return value of L for the result, placed inside an array reference. This is calculated by L and kept here for convenience and for internal use. =head1 SEE ALSO L =head1 LICENSE Copyright (C) 2005, 2006 by Olivier Thauvin This package is free software; you can redistribute it and/or modify it under the following terms: 1. The GNU General Public License Version 2.0 - http://www.opensource.org/licenses/gpl-license.php 2. The Artistic License Version 2.0 - http://www.perlfoundation.org/legal/licenses/artistic-2_0.html 3. At your option - any later version of either or both of these licenses. =cut