Just something quick and dirty to display the most recent JPEG you predefine in the <DATA> field.

#!/usr/bin/perl -w use strict; my %cams; while(<DATA>){ chomp; my $lm = -M $_; $cams{$lm} = $_; } my $recent = (sort keys %cams)[0]; open(my $fh, "<", $cams{$recent}) or die("Cannot open file! $!"); flock($fh, 4); print "Content-type: image/jpeg\n\n"; binmode STDOUT; $/ = \8192; # read data in 8kbyte chunks rather than from LF to LF # see perldoc perlvar (thanks Aristotle id://189265) print while <$fh>; close($fh); __DATA__ ../httpdocs/cam/cam.jpg ../web_users/someone_else/cam.jpg

I use this on my homepage to show the most recent of the two webcams I have. You can easily add other files by placing each file on a line by itself after the __DATA__ line.

The easiest way to learn anything is by having fun...

John J Reiser
newrisedesigns.com

  • Comment on Display your most recent webcam (or other) JPEG image (camlastmodified.pl)
  • Download Code

Replies are listed 'Best First'.
Re: Display your most recent webcam (or other) JPEG image (camlastmodified.pl)
by Aristotle (Chancellor) on Oct 26, 2002 at 02:18 UTC
    Seems like an odd way to find the newest file - I'd change the first part to
    my ($recent, $age); while(<DATA>){ chomp; my $cur_age = -M $_; $recent = $_, $age = $cur_age if $cur_age < $age; }
    (Unstested as is, but should work.) Thanks for the credit btw. :)

    Makeshifts last the longest.