#!/usr/bin/perl use warnings; use strict; package Artikel { sub new { my $classname = shift; my $args = {@_}; my $self = {nr => $args->{nr}, bestand => $args->{bestand}}; $self->{chargen} = []; return bless($self, $classname); } sub addCharge { my $self = shift; my $charge = shift; push($self->{chargen}, $charge); } sub showChargen { my $self = shift; my @chargen = @{$self->{chargen}}; my $i; if ($#chargen >= 0) { print "Artikel $self->{nr} hat folgende Chargen:\n\n"; foreach $i (@chargen) { print "ChargenID: $i->{id}\n"; print "Chargenbestand: $i->{bestand}\n"; print "\n"; } print "----------------------\n\n"; } } } package Charge { sub new { my $classname = shift; my $args = {@_}; my $self = {id => $args->{id}, bestand => $args->{bestand}}; return bless($self, $classname); } } my $artikel1 = Artikel->new(nr => 1, bestand => 10); my $artikel2 = Artikel->new(nr => 2, bestand => 20); $artikel1->addCharge(Charge->new(id => 1, bestand => 3)); $artikel1->addCharge(Charge->new(id => 2, bestand => 7)); $artikel2->addCharge(Charge->new(id => 1, bestand => 9)); $artikel2->addCharge(Charge->new(id => 2, bestand => 11)); print "\n"; $artikel1->showChargen(); $artikel2->showChargen();