Shishir Saxena wrote:
>
> Hi,
Hello,
> I'm doing the following and the purpose is to genrate a HTML log file. But
> the script says "Can not apply stat : No such file or directory found"
> Can someone plz tell me where I'm going wrong ?
use warnings;
use strict;
> use File::Find;
> use File::stat;
>
> open (OUT,">./out.html");
You should _ALWAYS_ verify that the file opened correctly.
open (OUT,">./out.html") or die "Cannot open out.html: $!";
> $Root = $ARGV[0];
> print $Root;
>
> my $var;
>
> print OUT '<html>
>
> <head>
> <meta http-equiv="Content-Language" content="en-us">
> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
> <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
> <meta name="ProgId" content="FrontPage.Editor.Document">
> <title>Path of File</title>
> </head>
>
> <body>
>
> <table border="1" width="106%">
> <tr>
> <td width="20%" align="center" bgcolor="#CCCC00"><b>Path of
> File</b></td>
> <td width="20%" align="center" bgcolor="#CCCC00"><b>File
> Version</b></td>
> <td width="20%" align="center" bgcolor="#CCCC00"><b>Build
> Number</b></td>
> <td width="20%" align="center" bgcolor="#CCCC00"><b>Size on
> Disk</b></td>
> <td width="20%" align="center" bgcolor="#CCCC00"><b>Timestamp</b></td>
> </tr>';
>
> find (\&wanted,"$Root");
You don't need to enclose scalar variables in quotes, $Root is already a
string.
find( \&wanted, $Root );
> print OUT ' </table>
> <p> </p>
>
> </body>
>
> </html>';
>
> sub wanted()
^^
Why are you using a prototype here?
> {
> if (-d $File::Find::name)
> {
> return;
> }
> $file = $File::Find::name;
> $file =~ s/\//\\/g;
You are changing all the slashes to backslashes so of course stat can't
find the file.
> $st = stat($file);
> $size = $st->size;
> $size = ($size/1024)."KB ($size bytes)";
> $time = scalar localtime $st->mtime;
If you remove the "use File::stat;" line at the top you can do what you
want like this:
sub wanted {
my $time = scalar localtime ( stat )[ 9 ];
return if -d _;
my $size = -s _;
$size = ( $size / 1024 ) . "KB ($size bytes)";
my $file = $File::Find::name;
> print OUT '
> <tr>
> <td width="20%" align="center" bgcolor="#FFFFCC">'."$file".'</td>
> <td width="20%" align="center" bgcolor="#FFFFCC">Not Available</td>
> <td width="20%" align="center" bgcolor="#FFFFCC">Not Available</td>
> <td width="20%" align="center" bgcolor="#FFFFCC">'."$size".'</td>
> <td width="20%" align="center" bgcolor="#FFFFCC">'."$time".'</td>
> </tr>';
John
--
use Perl;
program
fulfillment
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]