use strict;
use warnings;

open (FILE, ">", "test.txt") or die "Oops: $!\n";

write_file(\*FILE, "Irgendein dämlicher Text");
write_file(\*FILE, ['Apfel', 'Birne', 'Zwetschge']);
write_file(\*FILE, {Name => 'DOnald', Alter => 75});

close FILE;

sub write_file
  {
  my ($filehandle, $message) = @_;
  if (ref($message) eq 'ARRAY') 
    { print $filehandle "@$message\n";} 
  elsif (ref($message) eq 'HASH') 
    {
    foreach my $k (keys %$message) 
      { print $filehandle "$k: " . $message->{$k} . "\n"; }
    } 
  else 
    { print $filehandle "$message\n"; }
  }
