Grüße,
wie lernen z.Z. absolute Basics in Perl und bei mir scheitert es schon bei einem Variablenaufruf eines anderen Packages.
#!perl -w
use strict;
package IDependencies;
my $requirementFulfilled;
package initialize;
sub new (){
my $self=shift;
my $newInst={};
bless($newInst,$self);
}
package Method;
use base 'initialize';
my $name;
sub IsFullfilled()
{
print $requirementFulfilled = 0;
}
package Combinatorics;
use base 'initialize';
my %hashtable;
package main;
my $Method = new Method ->IsFullfilled();
Das ist mein bisheriger Code.
Am Ende soll in einer Hash-Table als Key die Instanz einer Method stehen und als Value entweder eine Instanz einer anderen Method, nichts oder aber erneut ein Hash-Table in dem widerrum das selbe stehen kann.
Nun hab ich ein gewaltiges Problem im package main auf die Variable von Combinatorics zuzugreifen und Einträge zu ändern.
Testweise hab ich das Script erweitert:
package combinatorics;
%hashtable = (Teststring=>"Teststring",Teststring2 =>"Teststring2");
print "$hashtable{'Teststring'}Teststring $hashtable{'Teststring2'} Teststring2";
Funktioniert auch tadellos, aber:
Ich will ja in meiner Main auf den Hash zugreifen und ihn ändern können. und im Prinzip etwas schreiben wie:
package main;
my $Method = new Method;
my $2Method = new Method;
my $combinatorics = new Combinatorics;
$combinatorics::%hashtable = ($Method=>$2Method)
Falls es irgendjemandem helfen sollte mein Problem zu verstehen;
In C# würd ich,um das selbe zu realisieren, schreiben:
public class Combinatorics {
Dictionary <initialize,initialize> hashtable = new Dictionary <initialize,initialize>();
}
Method method = new Method();
Method 2method = new Method();
Combinatorics combinatorics = new Combinatorics();
combinatorics.hashtable.Add(method,2method)