Thread Codereview Argument Validation (9 answers)
Opened by Kuerbis at 2013-08-26 15:50

rosti
 2013-08-27 21:56
#169777 #169777
User since
2011-03-19
3211 Artikel
BenutzerIn
[Homepage]
user image
2013-08-27T08:00:39 Kuerbis
Ich dachte mir, dass das, was croak macht, Exceptions genannt werden?


Korrekt ;)

Hier habe ich noch ein Stückchen Code geschrieben, erforderliche Parameter setze ich auf undef und in der sub ist auch gut zu sehen, was an Parametern gebraucht wird:
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
27
28
29
#!/usr/bin/perl

use strict;
use warnings;
use Carp;

sub foo{
    my %in = (
        name   => undef,
        vname  => undef,
        ort    => undef,
        suburb => '',
    @_);
    my @requires = qw(name vname ort);
    return eval{
        foreach my $r(@requires){
            croak qq('$r' not set) unless defined $in{$r};
        }
        "@in{@requires}"; # das ist der return
    };
}

my $li = foo(
    xname  => 'Henne',
    vname => 'Horst',
    ort   => 'Henneberg'
) or die $@;

print "Angekommen: $li";

View full thread Codereview Argument Validation