in reply to Re: Printing Random Image in HTML
in thread Printing Random Image in HTML

kilinrax: nice code, but we can get rid of your foreach loop:
open DAT, "ads.dat" or die "Error: cannot open data file: $!\n"; @imgdata=<DAT>; @imgs = grep { s/^[^|]+\|([^|]+)\|[^|]+\|(?:internal|partner)$/$1/ } @ +imgdata; $img = $imgs[int(rand($#imgs+1))]; print "Location: $img\n\n";

Cheers,
Ovid

I noticed everyone else had better, shorter answers than mine, sniff, sniff, so I just HAD to do something. Here's the regex broken out, for those who have asked for it:

s/^ # Beginning of string [^|]+ # Everything up to the next bar \| # The bar ( # Capture to $1 [^|]+ # Everything up to the next bar ) # End capture \| # The bar [^|]+ # Everything up to the next bar \| # The bar (?: # Non-capturing parens internal # the string "internal" | # or partner # the string "partner" )$ # End of string /$1/x # Substitute $1 for string
Join the Perlmonks Setiathome Group or just go the the link and check out our stats.