use strict; use warnings; use IO::File; use Encode; my $smiley = pack "U", 0x263a; # Zeichen my $bin = Encode::encode('UTF-8', $smiley); # binary f. Zeichen my $file = 'd:/tmp/emos'; # Datei zum Testen anlegen #writefile($file, $bin); # testen ob Zeichen in Datei # Vergleiche Zeichen my $fh = IO::File->new; $fh->open($file, "<:utf8") or die $!; while( my $line = <$fh> ){ chomp $line; # Ausgabe aller Codepoints print "@{[unpack 'U*', $line]}\n"; print "Hier wird gelächelt!\n" if $line =~ /$smiley/; } # Schreibe Bytes in Datei sub writefile{ my $file = shift; my $s = shift; my $fh = IO::File->new; $fh->open($file, O_CREAT|O_TRUNC|O_RDWR|O_BINARY) or die $!; $fh->print("Bitte lächeln und zwar so: $s"); $fh->close; }