Hi zusammen!
Meine Klasse ist wie folgt definiert:
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
56
57
58
59
60
61
62
63
64
65
66
67
68
sub new
{
my $class = shift;
my $self = {};
$self->{filename} = undef;
$self->{path} = undef;
$self->{logRespository} = undef;
$self->{mcg} = undef;
$self->{reader} = undef;
$self->{timeStamp} = undef;
bless ($self, $class);
return $self;
}
...
sub reader
{
my $self=shift;
if (@_) { $self->{reader} = shift }
return $self->{reader};
}
...
sub run
{
my $self=shift;
my $count = getIMSIcount();
#sleep(1000);
#workaround: disable BTS AXC and BTS WAM network interface
logprint("Disabling BTS AXC & WAM interface ...\n");
system("C:\\BFAT\\bfat_tools\\DevCon\\devcon disable PCI\\VEN_11AB");
system("C:\\BFAT\\bfat_tools\\DevCon\\devcon disable PCI\\VEN_13F0");
sleep(8);
StartMcgTestcase('mcg' => $self->{mcg}, 'reader' => $self->{reader}, 'tcName' => $self->{filename}, 'timestamp' => $self->{timeStamp});
# wait 30 seconds for each IMSI of the testcase
for(my $i = 0; $i <= $count; $i++)
{
sleep(30);
}
#workaround: enable BTS AXC and BTS WAM network interface again
logprint("Enabling BTS AXC & WAM interface ...\n");
system("C:\\BFAT\\bfat_tools\\DevCon\\devcon enable PCI\\VEN_11AB");
system("C:\\BFAT\\bfat_tools\\DevCon\\devcon enable PCI\\VEN_13F0");
StopMcgTestcaseAndTransferMcgLogs('mcg' => $self->{mcg}, 'reader' => $self->{reader}, 'repository' => $self->{logRespository});
}
...
sub getIMSIcount
{
$self=shift;
my $mcg_tc_log_base_dir = $self->{reader}->getTestCaseParam("mcg_tc_log_dir");
print $mcg_tc_log_base_dir."\n";
sleep(1000);
}
Von dieser Klasse bilde ich in einer anderen Datei eine Instanz und rufe schließlich die Methode run() auf. Da dies auf Instanzebene läuft, bin ich dazu in der Lage mittels der Variable $self auf meine Membervariable $reader zuzugreifen.
Innerhalb der run-Methode möchte ich nun die getIMSIcount-Methode aufrufen, die ebenfalls Zugriff auf reader hat.
In Java würde ich dieses Problem recht leicht mit this lösen. Wie stelle ich es am besten in Perl an ohne an die 2. Methode $self mitzuübergeben?
Gruß JackBauer