elsif($self->param('downconfig')){ #$self->dd($self->{SHOPCONFIG}); $self->header( 'Content-Type' => 'application/octet-stream', 'Content-Disposition' => "Attachment; filename=shopcfg.$self->{LANG}", ); use bytes; foreach my $k(keys %{$self->{SHOPCONFIG}}){ my $klen = length $k; my $vlen = length $self->{SHOPCONFIG}{$k}; #die "$self->{SHOPCONFIG}{$k} $vlen"; $self->{CONTENT} .= pack("N",$klen).$k.pack("N",$vlen).$self->{SHOPCONFIG}{$k}; } } elsif($self->param('upload')){ my $fh = $self->param('upfile') or die "Keine Datei angegeben\n"; use bytes; my $buffer = ''; my %cfg = (); while( read($fh, $buffer, 4) ){ my $klen = unpack "N", $buffer; read($fh, $buffer, $klen); # key in buffer my $key = $buffer; read($fh, $buffer, 4); my $vlen = unpack "N", $buffer; read($fh, $buffer, $vlen); # value in buffer $cfg{$key} = $buffer; } $self->{SHOPCONFIG} = \%cfg; tied($self->{SHOPCONFIG})->write or die $@; $self->header( Status => "301 Moved", Location => $self->{URL}, ); }