Hallo zusammen,
meine Erfahrungen mit Perl sind noch nicht allzu groß und nun schlage ich mich seit geraumer Zeit mit threads rum. Wo wir auch schon gleich bei meiner Frage wären:
gibt es eine Möglichkeit Funktionen zu threaden?
Beispiel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#! /usr/bin/perl -w
use strict
use Win32::OLE('in');
use constant wbemFlagReturnImmediately => 0x10;
use constant wbemFlagForwardOnly => 0x20;
use threads;
use threads::shared;
@hosts = @ARGV;
@hosts : shared = @hosts;
threads->create(sub {
sub get_proto {
foreach $computer (@hosts)
{
$objWMIService = Win32::OLE->GetObject
("winmgmts:\\\\$computer\\root\\CIMV2") or die "WMI connection failed.\n";
$colItems = $objWMIService->ExecQuery
("SELECT * FROM Win32_NetworkProtocol","WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly);
foreach my $objItem (in $colItems)
{
print "Caption: $objItem->{Caption}\n";
print "Connectionless Service: $objItem->{ConnectionlessService}\n";
print "Description: $objItem->{Description}\n";
print "Guarantees Delivery: $objItem->{GuaranteesDelivery}\n";
print "Guarantees Sequencing: $objItem->{GuaranteesSequencing}\n";
print "Install Date: $objItem->{InstallDate}\n";
print "Maximum Address Size: $objItem->{MaximumAddressSize}\n";
print "Maximum Message Size: $objItem->{MaximumMessageSize}\n";
print "Message Oriented: $objItem->{MessageOriented}\n";
print "Minimum Address Size: $objItem->{MinimumAddressSize}\n";
print "Name: $objItem->{Name}\n";
print "Pseudo-Stream Oriented: $objItem->{PseudoStreamOriented}\n";
print "Status: $objItem->{Status}\n";
print "Supports Broadcasting: $objItem->{SupportsBroadcasting}\n";
print "Supports Connect Data: $objItem->{SupportsConnectData}\n";
print "Supports Disconnect Data: $objItem->{SupportsDisconnectData}\n";
print "Supports Encryption: $objItem->{SupportsEncryption}\n";
print "Supports Expedited Data: $objItem->{SupportsExpeditedData}\n";
print "Supports Fragmentation: $objItem->{SupportsFragmentation}\n";
print "Supports Graceful Closing: $objItem->{SupportsGracefulClosing}\n";
print "Supports Guaranteed Bandwidth: $objItem->{SupportsGuaranteedBandwidth}\n";
print "Supports Multicasting: $objItem->{SupportsMulticasting}\n";
print "Supports Quality of Service: $objItem->{SupportsQualityofService}\n";
print "\n";
}
}
}
} )->join # ENDE THREAD
ich übergebe normalerweise mehrere Rechner und habe im Code viele Funktionen, die ich gerne threaden möchte. Mit einzelnen Variablen ist es mir gelungen, aber hier bin ich wirklich überfragt
Danke schonmal im voraus
Oblivion