Привет Linda.
#! /usr/bin/perl
$test1="=?utf-8?q?Ida Gtu?= compulsivehnaauf@zerosexlife.com";
$test2="=?utf-8?q?Ida Gtu?= compulsivehnaauf@zerosexlife.com";Inhalt öffnen, Inhalt einlesen, wieder schliessen
if($test2 =~ /$test1/i) {
print"ja, enthalten"
} else {
print"nein, nicht enthalten"
Ergebnis: Nein, nicht enthalten
Du solltest dich mit der Bedeutung der Hochkommata nochmal belesen. Doppelte bedeuten, dass Perl den String interpolativ auswertet, sprich: es werden alle Perl bekannten reservierten Zeichen umgesetzt. In deinem Musterstring $test2 wird ein "@" verwendet, Perl erwartet also einen Array, den es in das Muster einsetzen kann. Du willst aber den literalen Kontext, also das, was da steht. Dazu müsstest du dann aber entweder das @ durch einen vorangestellten Backslash maskieren oder aber einfache Hochkommata verwenden.
Ansonsten stellt sich im speziellen Fall die Frage, ob die Perl-eigenen Stringfunktionen oder sogar der simple Stringvergleich nicht völlig ausreichend wären.
Дружба!
Siechfred
Hinweis an alle Karnevalsmuffel: Aschermittwoch ist alles vorbei.