Your Moosey Fate
"Are those walnuts?"
"Yes." — All of Dib's fears are confirmed, Invader Zim
If you write your daily scraper scripts in Moose, it's actually pretty easy to turn them into a singular Moosey wrapper script and just change the attributes as needed:
package MyThing;
use Moose;
has 'url' => (
is => 'ro',
isa => 'Str',
default => sub { 'http://example.com' }
);
has 'string' => (
is => 'ro',
isa => 'Str',
default => sub { 'magic string' }
);
sub do_something { ... }
sub main {
my ($self) = @_;
$self->do_something;
return 0;
}
__PACKAGE__->meta->make_immutable;
1;
exit(MyThing->new->main);
die('NOT REACHED');becomes
use MyThingWrapper;
my $mything = MyThingWrapper->new(
url => 'http://example.com',
string => 'magic string',
);
$mything->do_something;
exit(0);
die('NOT REACHED');Lack of error-checking aside, you can templatize your script into a .pm Perl module and only keep one copy of it rather than having a dozen scripts that only have a few lines of difference between them. Put the module into source control and keep it someplace where every instance can get to it and you'll be happy as a clam.
It's super simple stuff, but I find myself happier to have done this kind of basic conversion a few times and saved myself a lot of fragmentation when I have to edit them. Now I just have to edit and test one thing.
No comments:
Post a Comment