Schrift
[thread]10895[/thread]

was ist an der syntax falsch?? (Seite 5)

Leser: 1


<< |< 1 2 3 4 5 6 7 >| >> 62 Einträge, 7 Seiten
grey1987
 2007-11-26 16:42
#103062 #103062
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
renee+2007-11-26 15:40:28--
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
my $anzahl = 3;
getlinefromsocket( $socket, $anzahl);

sub getlinefromsocket{
   my ($socket,$anz) = @_;
   my $buffer;
   my $char;
   while ($socket->recv($char,1)) {
      $buffer.=$char;
      last if length $buffer == $anz;
   }
}

aber so definier ich doch wieder, dass es immer drei zeichen sind,
wie mach ich das denn, dass der abbrechen soll, wenn nichts mehr kommt?
styx-cc
 2007-11-26 16:43
#103063 #103063
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Das sagst du hier:
Code (perl): (dl )
last if length $buffer == $anz;
bereits
Pörl.
grey1987
 2007-11-26 16:44
#103064 #103064
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
und was heißt dieses
Code (perl): (dl )
my $anzahl = 3;
styx-cc
 2007-11-26 16:44
#103065 #103065
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Mh, du solltest dir wirklich ein Perltutorial zu Gemuete fuehren...
Pörl.
grey1987
 2007-11-26 16:46
#103066 #103066
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
hätt ich zeit, würd ich es auch machen.
was heist das denn..?
renee
 2007-11-26 16:55
#103067 #103067
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
grey1987+2007-11-26 15:44:18--
und was heißt dieses
Code (perl): (dl )
my $anzahl = 3;

deklariere eine lexikalische Variable (Skalar) mit dem Namen "anzahl" und initialisiere sie mit "3"...

perlintro ist Pflichtlektüre. Bis dahin verabschiede ich mich...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
grey1987
 2007-11-26 17:06
#103068 #103068
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
meiner Meinung nach, beendet die while Schleife nicht, wenn nichts mehr kommt, sondern nach 3 zeichen.
grey1987
 2007-11-26 17:15
#103070 #103070
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
ok letzte frage, die ich eigentlich schon gestellt hab.
so sieht mein programm jetzt erst mal aus:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
use IO::Socket;
use strict;

my $socket = new IO::Socket::INET (PeerAddr =>'PC110197',PeerPort => 1810) or die "Konnte Socket nicht erstellen: $!\n";
$socket->autoflush(1);
my $line;

print "Sende ein Client Create zum Server\n";
print $socket "CLIENT CREATE\n";
getlinefromsocket ($socket);

print "\nSende ein CONNECT zum Server\n";
print $socket "CONNECT\n";
getlinefromsocket ($socket);

print "\nSende ein DISCONNECT zum Server\n";
print $socket "DISCONNECT\n";
getlinefromsocket ($socket);

print "\nSende ein END SESSION zum Server\n";
print $socket "END SESSION\n";
getlinefromsocket ($socket);

$socket->close();

sub getlinefromsocket ($socket){
  my $buffer;
  my $char;
  while ($socket->recv($char,1)) {
    $buffer.=$char;
    print $char;
    last if length $buffer == 4;
  }
}

die while Schleife wird beendet wenn vier Zeichen gelesen wurden.
wie mach ich das jetzt, dass die While Schleife beendet wird, wenn das nächste Zeichen kein Zeichen ist, alse wenn es ein Leerzeichen ist?
geht das überhaupt?
oder die Schleife soll beendet werden, wenn der Buffer zu ende gelesen wurde.
kurze knappe antwort reicht.
weil mit diesem my anzahl = 3 sag ich der Schleife auch, dass sie aufhören soll, wenn drei zeichen da sind.
Linuxer
 2007-11-26 17:39
#103071 #103071
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
Ohne den gesamten Thread gelesen zu haben:

Suchst Du sowas?

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
# wie gross darf $buffer max. werden
my $max_buf_size = 3;

while ( $socket->recv( $char, 1) ) {

  last if ( $char eq ' ' ); # Abbruch beim Leerzeichen \x20

  $buffer .= $char;
  last if ( length $buffer == $max_buf_size );
}
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
renee
 2007-11-26 17:43
#103072 #103072
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
grey1987+2007-11-26 16:15:27--
Code (perl): (dl )
1
2
3
4
#...
sub getlinefromsocket ($socket){
   #...
}


*Kopfschüttel*
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 3 4 5 6 7 >| >> 62 Einträge, 7 Seiten



View all threads created 2007-11-26 12:25.