#!/usr/bin/perl # Nukem v0.01 (untested) # Classified: Top Secret # # This code is to be considered alpha # Use of this code is strictly forbidden # except if given explict orders # by the President to Nukem. # use strict; # We're trying to blow up the enemy, not ourselves! use warnings; # So we need a bit of sanity here. # use the Weapons of Mass Destruction module use Weapons::MassDestruction; use Command::Protocols; use Time::HiRes qw(usleep); # Create a new command protocol object using the current protocols my $protocol = Command::Protocols->new(); # Create a new W::MD object that represents a nuclear missile passing a # reference to the protocol object so that we don't need to # pass it everytime we need info from it my $nuke = Weapons::MassDestruction->new( -protocol => \$protocol, -nuclear => 1 ); # Arm it $nuke->arm(); # Aim it $nuke->aim(); # Fire! $nuke->fire(); while(1) { # Never assume that it will not stray if (!$nuke->oncourse()) { $nuke->course_correct(); } # listen for an override signal if ($protocol->override()) { # change the destination to the alternate location residing # somewhere that minimalizes death and destruction of innocents $nuke->alt_course()); } # Is 100 microseconds too long to sleep between course corrections? # If it misses the target, we will never know... # we'll be vaporized :( usleep(100); }