use utf8;
use strict;
use warnings; no warnings "redefine";
use Umlaut qw(textmodus);

sub reader($) {
	my($fn) = @_;

	use IO::File;
	use Fehler qw(fehler);

	my $fh = ref $fn ? $fn : new IO::File($fn,"r");
	unless(defined $fh) {
		fehler "Konnte Datei '$fn' nicht lesen: $!\n";
	}

	textmodus($fh);
	my $data;
	{
		local $/ = undef;
		if(ref $fh eq "GLOB") {
			$data = <$fh>;
		} else {
			my $d;

			no warnings 'uninitialized';
			local $^W = undef;

			# IO::ScalarArray::getline() -- beim Lesen eines leeren Mailbody

			while($d = $fh->getline) {
				$data .= $d;
			}
		}
	}
	warn "Read error: $!\n" unless defined $data;
	$fh->close unless ref $fn;

	$data;
}
1;
