use v5.30.0;
my @stoppedGeneralServices = ( 'OP Mover', 'OP Monitor');
my @stoppedStandardServices = ( 'OP OPC Client', 'OP Calculation Server', 'OP Data Server', 'OP Configuration Server', 'OP Log Server', 'OP Time Server', 'ONC RPC PortMapper');
my $supported = '4.0.0,4.0.1,4.1.0,4.1.1,4.1.2';
$supported =~ /\Q4.1.2/ if @ARGV;
say "Start Basic Standard Services:";
startStandardServices( 'Config');
say "Start Remaining Standard Services:";
startStandardServices();
say "Start General Services:";
startGeneralServices();
say "Installation completed";
sub startStandardServices {
my $last = shift;
my $name;
while (@stoppedStandardServices) {
$name = pop @stoppedStandardServices;
say ' Starting $name=\'', $name, '\' $last=', defined $last ? "'$last'" : 'undef', ' ($name=~/$last/i)=', ($name =~ /$last/i) ? 1 : 0;
last if $name =~ /$last/i;
}
}
sub startGeneralServices {
my $last = shift;
my $name;
while (@stoppedGeneralServices) {
$name = pop @stoppedGeneralServices;
say ' Starting $name=\'', $name, '\' $last=', defined $last ? "'$last'" : 'undef', ' ($name=~/$last/i)=', ($name =~ /$last/i) ? 1 : 0;
last if $name =~ /$last/i;
}
}
####
D:\>surprise.pl
Start Basic Standard Services:
Starting $name='ONC RPC PortMapper' $last='Config' ($name=~/$last/i)=0
Starting $name='OP Time Server' $last='Config' ($name=~/$last/i)=0
Starting $name='OP Log Server' $last='Config' ($name=~/$last/i)=0
Starting $name='OP Configuration Server' $last='Config' ($name=~/$last/i)=1
Start Remaining Standard Services:
Starting $name='OP Data Server' $last=undef ($name=~/$last/i)=1
Start General Services:
Starting $name='OP Monitor' $last=undef ($name=~/$last/i)=1
Installation completed
####
D:\>surprise.pl all
Start Basic Standard Services:
Starting $name='ONC RPC PortMapper' $last='Config' ($name=~/$last/i)=0
Starting $name='OP Time Server' $last='Config' ($name=~/$last/i)=0
Starting $name='OP Log Server' $last='Config' ($name=~/$last/i)=0
Starting $name='OP Configuration Server' $last='Config' ($name=~/$last/i)=1
Start Remaining Standard Services:
Starting $name='OP Data Server' $last=undef ($name=~/$last/i)=0
Starting $name='OP Calculation Server' $last=undef ($name=~/$last/i)=0
Starting $name='OP OPC Client' $last=undef ($name=~/$last/i)=0
Start General Services:
Starting $name='OP Monitor' $last=undef ($name=~/$last/i)=0
Starting $name='OP Mover' $last=undef ($name=~/$last/i)=0
Installation completed