Re: wwwoffle cached images icons

Kragen Javier Sitaker <[email protected]>
Newsgroups gmane.culture.people.kragen.discuss
Message-ID <[email protected]>
Aristotle Pagaltzis writes:
> * Kragen Javier Sitaker <[email protected]> [2006-11-11 09:37]:
> > # Generate a really big page of small inline JPEG images from a
> > [fugly code omitted]
> A cleaner version that crawls the filesystem without external aid:
> [most of cleaner version omitted too]
>         open my $fh, '<', $filename or die "Can't open $filename: $!";

You don't like use Fatal?  :)

> [rest of cleaner version omitted]

I agree --- that is considerably easier to read!

> This code uses a minor trick: the <> operator will open and read
> all files listed in @ARGV sequentially, so the code stuffs the
> names of the data files of interest into that array, then turns
> them into URL file names, then uses the diamond operator to read
> them.

Yeah, I think that part would have taken me a while to figure out
without the explanation --- although I've used while (<>) a thousand
times, I've never used it to read a bunch of filenames the Perl
program itself had stuffed into @ARGV.  I suppose it would eventually
have dawned on me that you intended the stuff going into @ARGV to get
used for something eventually, and that the "while <>" wouldn't do any
good if it was trying to open and read the directory
/var/cache/wwwoffle/http.

> But the punchline is the implementation of this same thing in
> terms of the File::Find::Rule module from the CPAN:
>     #!/usr/bin/perl
>     use strict;
>     use warnings;
>     use File::Find::Rule;
>     # perl this-script /var/cache/wwwoffle/http > tmp.html
>     @ARGV = File::Find::Rule
>         ->name( 'D*' )
>         ->file
>         ->grep( qr/ \A Content-Type: [ ]* image/jpeg \r\n /ix )
>         ->in( @ARGV );
>     s[ \A (.*) /D ]{ $1 . '/U' }ex for @ARGV;
>     print qq(<img src="$_" width="128" height="128" />\n) while <>;
> You can see that F::F::R is the bee’s knees.

Now that, that is quite remarkable.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.