Leser: 17
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
#!/usr/bin/perl use warnings; use strict; use feature ':5.10'; my $hash_ref = { eins => 1, zwei => 2, drei => 3, vier => 4 }; my %hash = %$hash_ref; say for keys %hash; my $array_ref = [ 1, 2, 3, 4 ]; my @array = @$array_ref; say for @array; my $sub_ref = sub { return 1234; }; # ????? = &$sub_ref(); # my $zahl = sub_routine()
1
2
3
4
5
6
$ perl -wle'use strict;
my $subref = sub { return 23 };
# zuweisung an symboltabelle
*{ foo } = $subref;
print foo();'
23
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
package Mobile_Phone_Config; use warnings; use strict; use feature ':5.10'; use Term::ANSIColor; require Exporter; our @ISA = qw( Exporter ); our @EXPORT = qw( mobile_phone_config ); my $promt_color = 'magenta'; my $c_space = 2; sub mobile_phone_config { my %config = ( # ... => ..., # ... => ..., color_count => sub { my $count = shift; return colored( sprintf( "%${c_space}s", $count ), $promt_color ); }, print_promt => sub { print "\n" . colored( ':', $promt_color ); }, ungueltig => sub { say " - Ungültige Eingabe - \n"; sleep 2; }, ); return %config; } #... 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#!/usr/bin/perl use warnings; use strict; use feature ":5.10"; use Mobile_Phone_Config; my %config = mobile_phone_config(); *{ color_count } = $config{color_count}; #*ungueltig = *$config{ungueltig}; sub print_promt { $config{print_promt}->() }; print color_count( 10 ); #ungueltig(); print_promt();
*{ foo } = $subref;
Guest GastMit Argumentübergabe funktioniert bei mir nur die VersionCode (perl): (dl )*{ foo } = $subref;
1 2 3 4
sub print_promt { $config{print_promt}->() }; # verarbeite auch die Argumente sub print_promt { $config{print_promt}->(@_) };
1 2 3
*{ color_count } = $config{color_count}; #*ungueltig = *$config{ungueltig};
Guest GastIch hatte es zuerst mit sub routine { &$config{sub_ref}() } probiert, was nicht funktioniert hatte.
1 2 3 4 5 6 7 8
# Für einfache Subref $subref->(10); # Für Subref in Hash drin $config{sub_ref}->(10); # Oder kürzer (Pfeile zwischen Klammern darf man meist weglassen) $config{sub_ref}(10);