Thread Perl 5.42
(30 answers)
Opened by lichtkind at 2025-07-05 23:10
Zum ebenda gezeigten Beispiel:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 class LexicalMethod { my method abc ($x, $y) { say "Internal method abc invoked with x=$x y=$y"; } method xyz { $self->&abc("x", "y"); } } Wäre es doch immer noch möglich, die methode xyz von draußen aufzurufen. Und zwar so: Code (perl): (dl
)
my $lex = LexicalMethod->new()->xyz(3,4); Und damit auch die private Methode. Das konnte man mit legacy Perl5 auch schon machen: Code (perl): (dl
)
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 package Usus; use strict; use warnings; sub new{ my $class = shift; bless{}, $class; } my $pm = sub{ my $self = shift; die "Aha, eine private Methode\n"; }; sub hack{ my $self = shift; $self->$pm(@_); } package main; use strict; use warnings; my $u = Usus->new()->hack; Last edited: 2025-07-09 19:28:29 +0200 (CEST) |