Net::SSH2::File - SSH 2 SFTP file object


Net-SSH2 documentation Contained in the Net-SSH2 distribution.

Index


Code Index:

NAME

Top

Net::SSH2::File - SSH 2 SFTP file object

DESCRIPTION

Top

An SFTP file object is created by the Net::SSH2::SFTP open method.

read ( buffer, size )

Read size bytes from the file into a given buffer. Returns number of bytes read, or undef on failure.

write ( buffer )

Write buffer to the remote file; returns bytes written, undef on failure.

stat

Returns file attributes; see Net::SSH2::SFTP::stat.

setstat ( key, value... )

Sets file attributes; see Net::SSH2::SFTP::setstat.

seek ( offset )

Set the file pointer offset.

tell

Returns the current file pointer offset.

SEE ALSO

Top

Net::SSH2::SFTP.

AUTHOR

Top

David B. Robins, <dbrobins@cpan.org>

COPYRIGHT AND LICENSE

Top


Net-SSH2 documentation Contained in the Net-SSH2 distribution.

package Net::SSH2::File;

use strict;
use warnings;
use Carp;

# methods

# tie interface

sub PRINT {
    my $self = shift;
    my $sep = defined($,) ? $, : '';
    $self->write(join $sep, @_)
}

sub PRINTF {
    my $self = shift;
    $self->write(sprintf @_)
}

sub WRITE {
    my ($self, $buf, $len, $offset) = @_;
    $self->write(substr($buf, $offset, $len))
}

sub READLINE {
    my $self = shift;

    if (wantarray) {
        my @lines;
        my $line;
        push @lines, $line while defined($line = $self->READLINE);
        return @lines;
    }
    
    my ($line, $eol, $c) = ('', $/);
    $line .= $c while $line !~ /\Q$eol\E$/ and defined($c = $self->GETC);
    length($line) ? $line : undef
}

sub GETC {
    my $self = shift;
    my $buf;
    $self->read($buf, 1) ? $buf : undef
}

sub READ {
    my ($self, $rbuf, $len, $offset) = @_;
    my ($tmp, $count);
    return unless defined($count = $self->read($tmp, $len));
    substr($$rbuf, $offset) = $tmp;
    $count
}

sub CLOSE {
}

sub BINMODE {
}

sub EOF {
    0
}

1;
__END__