www.farid-hajji.net banner

Farid Hajji

Perl: Einführung, Anwendungen, Referenz (2/e) [Support-Site]

Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2

Beispielprogramm

ST/WarpEngine/WarpEngine.pm
package ST::WarpEngine;

use strict;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);

require Exporter;
require AutoLoader;

@ISA       = qw(Exporter AutoLoader);
@EXPORT    = qw( engage disengage energize );
@EXPORT_OK = qw( refuel set_speed );
$VERSION = '0.01';

$ST::WarpEngine::_core_expelled = 0;  # Lokale Modulvariable.
                                      # VORSICHT! NICHT my,
                                      # da der lexikalische
                                      # Sichtbarkeitsbereich
                                      # bei __END__ endet!

1;
__END__

=head1 NAME

  ST::WarpEngine - Perl access to Starfleet Warp Engines

=head1 SYNOPSIS

  use ST::WarpEngine;
  use ST::WarpEngine qw( refuel set_speed );

  engage();                # Start engine, waits for energize()
  disengage();             # Stop engine
  energize();              # Ignite started warp core

  refuel();                # Fill the antimatter tanks
  set_speed($wfactor);     # Set warp factor,
                           # only while disengage()d

  ST::WarpEngine::self_destruct($password);   # DESTRUCT SHIPS
  ST::WarpEngine::expell_core($password);     # Eject warp core

=head1 DESCRIPTION

This module provides direct access to the warp engine of
Starfleet vessels by talking to their SNMP port using
the Starfleet SNMP MIB II as specified in RFC 32053.

For more Information ask for technical help under
techies@<your vessel here>.

=head1 AUTHOR

Farid Hajji <farid.hajji@ob.kamp.net>

=head1 SEE ALSO

perl(1), ST::Beam(3), RFC 32053 Starfleet SNMP MIB II

=cut

# Hier kommen unsere Funktionen, die erst zur Laufzeit geladen
# werden sollten:
sub engage    { return if $_core_expelled;
                print "engaging warp engine...\n"; }
sub disengage { return if $_core_expelled;
                print "disengaged!\n"; }
sub energize  { return if $_core_expelled;
                print "applying big amounts of energy\n"; }
sub refuel    { return if $_core_expelled;
                print "your antimatter tanks are refueled\n"; }
sub set_speed { return if $_core_expelled;
                print "setting warp factor ", shift(), "\n"; }
sub self_destruct {
    if ($_core_expelled) { print "with what?\n"; return; }
    my $password = shift;
    return if $password ne 'boom'; # Was fuer ein sicheres Passwort!
    print "self destruction will occurBOOM!!!!\n";
}
sub expell_core {
    return if $_core_expelled;
    my $password = shift;
    return if $password ne 'getitoutquickquick';
    print "expelling core module NOW!\n";
    $_core_expelled = 1;
}
   

[Prev] [Up] [Relevant Chapter] [Next]

[Alte Quelle]


Last modified: $Date: 2006/05/18 12:56:12 $
FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy
FreeBSD Logo