given($self->{output}->{$key}->{type}){ when('named_pipe'){ open my $handle ,'>',$self->{output}->{$key}->{name} or croak "could not open output handle"; print $handle $input; close $handle; } when('unix_socket'){ my $server = $self->{output}->{$key}->{fh}; if(!exists $self->{output}->{$key}->{socket}){ $self->{output}->{$key}->{socket}= $server->accept() or croak "$!"; } my $socket = $self->{output}->{$key}->{socket}; print $socket $input; } when('network_socket'){ my $server = $self->{output}->{$key}->{fh}; if(!exists $self->{output}->{$key}->{socket}){ $self->{output}->{$key}->{socket} = $server->accept() or croak "$!"; } print "printing to output"; my $socket = $self->{output}->{$key}->{socket}; print $socket $input; } }