Shawn Milochik wrote:

> Hi.  I'm new to Perl (just a couple of weeks).
> 
> I'm trying to write a script which will check the date of a local file,
> compare it to a remote file (on another server on the same network), and
> copy the local over if it is newer.  I'm currently using the 'stat'
> function.  Here is part of the script:
> 
> 
>     #This is the source directory, where the file is built.
>     $sourceDir = 'c:\alldata\Godiva\slsmgtsp\rtsmarts';
>     $sourceFile = 'c:\alldata\Godiva\slsmgtsp\rtsmarts\rtsales.exe';
>     $sourceTimestamp =(stat($sourceFile))[9];
> 
>     #This is the destination directory, where the file put for downloading
>     $destDir =  '\\170.230.133.17\c$\inetpub\wwwroot\emp\files';
>     $destFile = '\\170.230.133.17\c
> $\inetpub\wwwroot\emp\files\rtsales.exe';
>     $destTimestamp = (stat($destFile))[9];
> 
> However, whenever I do this, the $destTimestamp comes back blank (null,
> zero-length-string, I'm not sure).  I've resorted to copying the local
> file into the directory where the script is kept each time I copy the file
> to
> the server.  Then at each run, I compare the local source file with the
> local file kept in the script directory:
> 
>     #This is the local directory, where the script is kept.
>     $localDir = 'c:\alldata\Godiva\slsmgtsp\rtsmarts';
>     $localFile = 'c:\alldata\rtsmarts\rtsales.exe';
>     $localTimestamp =(stat($localFile))[9];
> 
> I compare $localTimestamp to $sourceTimestamp because comparing
> $sourceTimestamp to $destTimestamp.  Is there a smarter way to do this?
> 
> By the way, this is COMPLETELY unrelated, but I received a really cool
> Perl
> script with my latest issue of Linux Format magazine.  It will split a
> large mp3 into smaller, individually playable mp3s.  (Useful:  I can split
> my 500mb audiobook mp3s into 5mb pieces, so that I can listen on my cd/mp3
> player.)  If anyone wants it, I'll e-mail it, or put up a link.  The file
> was created by Sean M. Burke of CPAN.org.
> 
> Thanks,
> Shawn
> 
> 
> 
> 
> 
> **********************************************************************
> This e-mail and any files transmitted with it may contain
> confidential information and is intended solely for use by
> the individual to whom it is addressed.  If you received
> this e-mail in error, please notify the sender, do not
> disclose its contents to others and delete it from your
> system.
> 
> **********************************************************************

that's because you are access the file over the network and Perl's stat()
function can't handle that. a simple solution would be to actually mount the 
drive to your local machine and then use the stat() function again.

david

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to