#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use 5.010; use Encode; sub decode_ansi { decode('cp1252',$_[0]) } my @namen = ( decode('ISO-8859-15',"Zala Kralj & Ga\250per \246antl"), # besser vermeiden decode_ansi("Zala Kralj & Gašper Šantl"), # so sieht's doch besser aus! decode_ansi("Björk Guðmundsdóttir"), ); my $filter = decode_ansi( q/[^0-9a-z @\.,_#+±%()\[\]\$\-~¿!'&§°¨ßäöüÅÄÁÀÃÂÖÜÚÉÈÑþœçáàåãâëéèêòóúùîïí©øØô½ñšŠý®¬µ¯ð]/ ); for my $name (@namen) { my @liste; for (my $p = 0; $p < length($name); $p ++) { if (substr($name,$p,1) =~ /$filter/i) { push @liste,$p+1; } } say Dumper(\@liste); }