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
# hier werden die jeweiligen Layer geladen sub _parse_rawdata{ my $self = shift; if( $self->{CONTENT_TYPE} eq 'multipart/c-eav' ){ require cEAV; $self->{eav} = cEAV->decode_eav( $self->rawdata ); $self->{param} = $self->{eav}->{param}; } elsif( $self->{CONTENT_TYPE} eq 'multipart/eav' ){ # coming soon } elsif( $self->{CONTENT_TYPE} eq 'multipart/form-data' ){ require ParseMultipart; $self->{STDIN}->seek(0,0); $self->{param} = ParseMultipart->parse_multipart( $self->{STDIN} ); } elsif( $self->{CONTENT_TYPE} eq 'application/json' ){ require JSON; my $json = JSON->new; $self->{json} = $json->decode($self->rawdata); $self->{param} = $self->{json}{param}; } elsif( $self->{CONTENT_TYPE} eq 'bserialize/av' ){ require bSerialize; my $bs = bSerialize->new; my $binary = $self->rawdata; $self->{param} = $bs->bin2av( \$binary ); } else{ # Default Enctype # Parameter: Name => [Value], application/x-www-form-urlencoded $self->{param} = $self->qparse($self->rawdata); } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# Deserialisierung, Rückgewinnung der Datenstruktur # für den wahlfreien Zugriff: Schlüssel-Werte-Paare $self->param; my $in = $self->{CGI}{param}; my $code = delete $in->{code}; eval $code or die "Error Compile Code: $@\n"; my $methodname = delete $in->{methodname}; my $coderef = $self->can($methodname) or die "Unknown methodname '$methodname'\n"; # Mit in %$in verbleibenden Parametern # wird die namentlich übergebene Methode aufgerufen $self->{CONTENT} = $self->$coderef(%$in) || die "the return value is emty";
Guest janusLeute, kümmert Euch um Perl.