Schrift
[thread]6618[/thread]

Sockets / Hash - Switch Statement



<< >> 5 Einträge, 1 Seite
Gast Gast
 2005-01-10 00:45
#50656 #50656
Hallo.

Wieso wird bei folgendem Code nie die if-Bedingung erfüllt? Im Client wird z.B. quit eingegeben, aber $exit = 1; last; wird nie ausgeführt :-/

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
print $client "Command? ";

while ( <$client> ) {
next unless /\S/; # blank line

my %commands = (
'quit' => sub { $exit = 1; last; },
'title' => \&title,
'next' => \&next_title,
'prev' => \&prev_title,
);

if ( defined( $commands{$_} ) ) {
$commands{$_}->();
} else {
print $client "Commands: quit title prev next", $CRLF;
}
esskar
 2005-01-10 00:51
#50657 #50657
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
while ( <$client> ) {
  next unless /\S/;       # blank line

  chomp;

  my %commands = (
    'quit'  => sub { $exit = 1; last; },
    'title' => \&title,
    'next'  => \&next_title,
    'prev'  => \&prev_title,
  );

  if ( defined( $commands{$_} ) ) {
    $commands{$_}->();
  } else {
    print $client "Commands: quit title prev next", $CRLF;
  }
}
\n\n

<!--EDIT|esskar|1105311104-->
cocko
 2005-01-10 00:59
#50658 #50658
User since
2005-01-10
18 Artikel
BenutzerIn
[default_avatar]
Hm, die chomp-Funktion allein scheint es nicht gewesen zu sein.
cocko
 2005-01-10 01:07
#50659 #50659
User since
2005-01-10
18 Artikel
BenutzerIn
[default_avatar]
Doch, danke :-)

$/ = $CRLF;
chomp;

So (natürlich).
Strat
 2005-01-10 22:08
#50660 #50660
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
willst du ueberpruefen, ob ein hashkey mit einem bestimmten namen existiert? dann ist defined nicht der richtige weg, sondern verwende besser
Code (perl): (dl )
if (exists $command{$_}) {
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 5 Einträge, 1 Seite



View all threads created 2005-01-10 00:45.