$country wird ausgegeben.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl -w
use DBI;
use CGI qw/:all/;
use warnings;
use strict;
my $receiver;
my $country = param('country');
if ($country eq "usa") { $receiver ="global\@..."; }
elsif ($country eq "uk") { $receiver ="europe\@..."; }
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n";
print "<html><head><title>Test-Ausgabe</title></head><body>\n";
print "<h1>$receiver $country</h1>\n";
print "</body></html>\n";
 
 
User since
2003-08-04
14371
Artikel
ModeratorIn
![[Homepage]](/battie/theme/default/homepage.gif) 
![[default_avatar]](/battie/theme/default/default_avatar.gif) 
 
Und da steht auch wirklich "usa" bzw. "uk" drin? Zeig mal die Ausgabe...
 
User since
2003-08-04
14371
Artikel
ModeratorIn
![[Homepage]](/battie/theme/default/homepage.gif) 
![[default_avatar]](/battie/theme/default/default_avatar.gif) 
 
Offensichtlich sind da noch Leerzeichen um das "uk" herum. Kein Wunder, dass das 
if-elsif nicht "funktioniert".
Du könntest es so machen:
if ($country  =~ /^\s*usa/) { $receiver ="global\@..."; }
elsif ($country  =~ /^\s*uk/ ) { $receiver  = "europe\@..."; } 
 oder - was besser wäre - im Formular dafür sorgen, dass keine Leerzeichen drumherum sind.
 
Tatsächlich hat es an den Leerzeichen gelegen. Das blöde war, die sind durch einen Excel-Export entstanden. Aufgrund der Länge der Liste hatte ich die Leerzeichen nicht gelöscht, was ich jetzt nachgeholt habe *puh*
Dann besten Dank für die Hilfe. Habt mir sehr weiter geholfen.