Thread Saubere Perl-Syntax Variable in sub behalten (19 answers)
Opened by bianca at 2014-09-16 08:07

GwenDragon
 2014-09-16 08:39
#177300 #177300
User since
2005-01-17
14747 Artikel
Admin1
[Homepage]
user image
Ersetze in deiner sub das $cb->{cipher} durch $cb.
Rufe später wie folgt auf:
my $cb; ... $crypt->($cb,'foo');

//EDIT:
Ach so, wenn du das Crypt::CBC-Objekt statisch in der sub behalten willst, kannst du das mit Perldoc:perlfunc state tun.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use feature 'state';
my $crypt = sub {
    my $val = shift;
    state $cb;
    
    if (!defined $cb) {
        say "Debug: erzeuge Objekt";
        $cb = Crypt::CBC->new(
            -key    => 'foobar',
            -cipher => 'Blowfish',
        );
    }
    if (defined $val) { return $cb->encrypt($val); }
};


//EDIT: $cb->isa('Crypt::CBC') entfernt, da $cb ja als solches Objekt immer erzeugt wird.
Last edited: 2014-09-16 09:37:46 +0200 (CEST)

View full thread Saubere Perl-Syntax Variable in sub behalten