a cely treba takhle:
#!/usr/bin/perl
use DBI;
use strict;
use warnings;
## GRANT ALL ON test.* TO test@'%' IDENTIFIED BY 'test';
## CREATE TABLE `dirlist` (`fpath` TEXT NOT NULL, `fsize` INT(11) NOT NULL) COLLATE='utf8_general_ci' ENGINE=MyISAM;
my $srcdir = $ARGV[0] || './';
$srcdir = $srcdir . '/' unless $srcdir =~ /\/$/;
die "$srcdir is not directory\n" unless -d $srcdir;
my $host = '127.0.0.1';
my $database = 'test';
my $user = 'test';
my $password = 'test';
my $dsn = qq[DBI:mysql:database=$database;host=$host];
my $dbh =
DBI->connect( $dsn, $user, $password,
{ PrintError => 1, RaiseError => 1, AutoCommit => 1 } )
or die DBI->errstr;
my $sth_ins = $dbh->prepare(qq[INSERT INTO dirlist (fpath, fsize) VALUES (?,?)])
or die $dbh->errstr;
opendir( SDIR, $srcdir ) or die "Can't opendir $srcdir, $!";
my @files = readdir(SDIR);
closedir SDIR or die "Can't closedir $srcdir, $!";
foreach my $item ( sort @files ) {
#next if $item =~ /^\.{1,2}$/;
my $fpath = $srcdir . $item;
if ( -d $fpath ) {
my (
$dev, $ino, $mode, $nlink, $uid, $gid, $rdev,
$size, $atime, $mtime, $ctime, $blksize, $blocks
) = stat($fpath);
$sth_ins->execute( $fpath, $size ) or die $dbh->errstr;
print "File: $fpath\t\tSize: $size\n";
}
}
$sth_ins->finish or die $!;
$dbh->disconnect or die $!;