![]() |
![]() |
9 Einträge, 1 Seite |
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
### Hauptprogramm ###
#!/usr/bin/perl
use strict;
use lib './classes';
use builder;
my $builder;
$builder = builder->new("Author");
$builder->print();
### Package ###
package builder;
use strict;
sub new {
my ($class, $author) = @_;
my $self = { _author => $author };
return bless($self, $class);
}
sub print {
my ($self) = @_;
print $self->{_author}."\n";
}
1;
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
### Hauptprogramm ###
#!/usr/bin/perl
use strict;
use lib './classes';
use builder;
my $builder;
$builder = builder->new(author => "Author");
$builder->print();
### Package ###
package builder;
use strict;
my $author;
sub new {
my ($class, %args) = @_;
$author = $args{author};
return bless(\%args, $class);
}
sub print {
my ($self) = @_;
print $author."\n";
}
1;
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
#!/usr/bin/perl
use strict;
package builder;
my $author;
sub new {
my ($class, %args) = @_;
$author = $args{author};
return bless(\%args, $class);
}
sub print {
my ($self) = @_;
print $author."\n";
}
package main;
my $builder;
$builder = builder->new(author => "Author");
$builder->print();
my $b2;
$b2 = builder->new(author => "Joe");
$b2->print();
$builder->print();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl
use strict;
package builder;
use Moose;
has 'author' => ( is => 'rw' );
package main;
my $builder;
$builder = builder->new(author => "Joe");
print $builder->author . "\n";
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
### Package ###
package Builder;
use strict;
sub new {
my ($class, %args) = @_;
return bless(\%args, $class);
}
sub print {
my ($self) = @_;
print $self->{author}, "\n";
}
1;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
sub AUTOLOAD
{
# Objekt und neuen Wert aus der Parameterliste holen
my($self, $nv) = @_;
# Methodennamen holen
my $attr = $AUTOLOAD;
# package entfernen
$attr =~ s/.*:://;
# alten Wert holen
my $ov = $self->{$attr};
# Wert ändern, falls gewünscht
$self->{$attr} = $nv if defined $nv;
# alten Wert zurückgeben
return $ov;
}
1
2
3
4
5
6
7
8
9
sub new {
my $class = shift;
my $self = bless( {}, $class ); # objekt erzeugen
# hat den vorteil, dass man z.B. eine Initialize-Methode aufrufen koennte
$self->_initialize( @_ );
return $self;
} # new
![]() |
![]() |
9 Einträge, 1 Seite |