use strict; use warnings; use Filesys::SmbClient; my %args = ( username => 'account', password => 'secret', workgroup => 'domain', debug => 0 ); my $smb = new Filesys::SmbClient(%args); my $filename = 'smb://server/share/directory/file.name'; my $remote = $smb->open($filename) or die "Can't open $filename: $!\n"; open my $local, '>', 'file.name' or die "Can't open file.name: $!\n"; while ( defined( my $buffer = $smb->read($remote) ) ) { last if $buffer eq ''; print {$local} $buffer; } $smb->close($fd);