Net::SFTP usa Net::SSH::Perl para construir una conexión
segura para la transferencia de ficheros.
cat -n examplenetsftp2.pl
1 #!/usr/bin/perl -w
2 use Net::SFTP;
3 use strict;
4 use Data::Dumper;
5
6 our $count = 0;
7 my $user = 'casiano';
8 my $host = (shift or die "Dame una máquina!\n");
9 my $pass = (shift or die "Dame una paspassn");
10 my $sftp = Net::SFTP->new($host, user=>$user, password=>$pass);
11 $sftp->put($0, 'borrame.txt');
12 $sftp->ls('.', sub { print "$_[0]->{filename}\t"; print "\n" if $count++ % 5 == 0 } );
13 print "\n";
En la línea 12 obtenemos la lista de ficheros.
La interfaz del método ls es:
$sftp->ls($remote [, $subref ])
donde $remote es el directorio en la máquina remota.
Si se especifica $subref entonces la subrutina apuntada por
$subref será llamada para cada entrada del directorio.
Se le pasa una referencia a un hash con tres claves:
filename, El nombre de la entrada en el listado del directorio.
longname, una entrada detallada tipo ls -l.
a, Un objeto Net::SFTP::Attributes conteniendo
los atributos del fichero (atime, mtime, permisos, etc.).
$ ./examplenetsftp2.pl maquina password . .. tmp .screenrc .bash_logout .bash_profile .bashrc .mailcap .bash_history .gimp-1.2 .paraver .viminfo public_html lhp .Xauthority pl borrame.txt .bashrc~ .ssh examplesftp.pl
Casiano Rodríguez León
