The beginning there was nothing…
Until I got bored and decided to write my own picture engine. Right now it just displays random images for the front page of my new picture gallery. With a little Ajax magic and CSS 2.0 fun we should have a kickin picture party.
Perl Oopssss
#! /usr/local/bin/perl -w
use strict;
my $picture = new Picture();
print $picture->randomPicture;
package Picture;
sub new {
my $class = shift;
my $self = {
dir => ‘./slovakia’,
reg_exp => ‘.*THUMB.JPG’,
site_domain => ‘http://www.loganandamy.com’,
site_dir => ‘/slovakia’,
@_
};
bless $self, $class;
}
sub giveMePicture{
my $self = shift;
return “siteDomain.$self->siteDir.”/”.$self->randomPicture.”\”>”;
}
sub randomPicture{
my $self = shift;
if (ref(@_)){
$self->{rand_pic} = shift;
}else{
$self->{rand_pic} = ${$self->openDir}[int(rand(scalar(@{$self->openDir})))];
}
return $self->{rand_pic};
}
sub openDir{
my $self = shift;
my $altdir = shift;
if (ref($altdir)){
$self->dirCriteria($altdir);
}
my $reg_exp = $self->fileCriteria;
my $dir = $self->dirCriteria;
opendir DIR, $dir || die “unable to open dir:$!”;
@{$self->{dir_files}} = grep {/$reg_exp/ && -f “$dir/$_” } readdir(DIR);
closedir DIR;
return $self->{dir_files};
}
sub siteDir{
my $self = shift;
shift @_ ? $self->{site_dir} = shift : $self->{site_dir};
}
sub siteDomain{
my $self = shift;
shift @_ ? $self->{site_domain} = shift : $self->{site_domain};
}
sub fileCriteria{
my $self = shift;
shift @_ ? $self->{reg_exp} = shift : $self->{reg_exp};
}
sub dirCriteria{
my $self = shift;
shift @_ ? $self->{dir} = shift : $self->{dir};
}