Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10913[/thread]

Array mit einer Schleife ausgeben

Leser: 1


<< >> 10 Einträge, 1 Seite
grey1987
 2007-11-28 11:28
#103212 #103212
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
wie mein Betreff schon sagt, will ich eine Listemit einer Schleife ausgeben.

zb. die liste:



Code (perl): (dl )
@list = ("name1","name2","name3","name4")


die Schleife soll dann abbrechen, wenn der letzte Sting ausgegeben wurde.


Ps: ich hab schon im net geschaut, jedoch nichts sinnvolles gefunden.
renee
 2007-11-28 11:38
#103213 #103213
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (dl )
1
2
3
for my $elem ( @liste ){
    print $elem,"\n";
}


perlintro unbedingt lesen!
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/
lichtkind
 2007-11-28 12:39
#103217 #103217
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
warum solte es eine schleife sein? willst du noch etwas anderes parallel machen? ansonst ginge auch:

Code (perl): (dl )
print "$_\n" for @liste;


oder

Code (perl): (dl )
print @liste;
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
grey1987
 2007-11-28 12:47
#103220 #103220
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
hab das ein bisschen anders gemacht (hab selber nachgedacht):
was sagt ihr denn dazu???

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
use strict;
my $i;
my @list = ("eins","zwei","drei");
my $letzter = $#list;

while ($i <= $letzter) {
  print $list[$i];
  $i = $i + 1;
}
grey1987
 2007-11-28 12:48
#103221 #103221
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
also wenn es euch interessiert, ich wollte mein code ein bisschen kleiner machen:
alt:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
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);


print "\n";
########## CREATE CLIENT ###########
print "Sende ein Client Create zum Server...\n";
print $socket "CLIENT CREATE\n";
my $line = getlinefromsocket ($socket);
  if ($line eq "ACK") {
    print "erfolgreich!";

########## CONNECT ############

    print "\nSende ein CONNECT zum Server...\n";
    print $socket "CONNECT\n";
    $line = getlinefromsocket ($socket);
      if ($line eq "ACK") {
        print "erfolgreich!";
      }
      elsif ($line eq "NACK") {
        print "fehlgeschlagen!";
      }
      else {
        print "nichts geht!";
      }


############## PING CGK ###############

    print "\nSende ein PING GET CGK-IMPORT zum Server...\n";
    print $socket "PING GET CGK-IMPORT\n";
    $line = getlinefromsocket ($socket);
      if ($line eq "ACK") {
        print "erfolgreich!";
      }
      elsif ($line eq "NACK") {
        print "fehlgeschlagen!";
      }
      else {
        print "nichts geht!";
      }

############## PING BUSY ###############

    print "\nSende ein PING GET BUSY-IMPORT zum Server...\n";
    print $socket "PING GET BUSY-IMPORT\n";
    $line = getlinefromsocket ($socket);
      if ($line eq "ACK") {
        print "erfolgreich!";
      }
      elsif ($line eq "NACK") {
        print "fehlgeschlagen!";
      }
      else {
        print "nichts geht!";
      }

############## PING COLD ###############

    print "\nSende ein PING GET COLD-IMPORT zum Server...\n";
    print $socket "PING GET COLD-IMPORT\n";
    $line = getlinefromsocket ($socket);
      if ($line eq "ACK") {
        print "erfolgreich!";
      }
      elsif ($line eq "NACK") {
        print "fehlgeschlagen!";
      }
      else {
        print "nichts geht!";
      }

############## PING ZEUS ###############

    print "\nSende ein PING GET ZEUS-IMPORT zum Server...\n";
    print $socket "PING GET ZEUS-IMPORT\n";
    $line = getlinefromsocket ($socket);
      if ($line eq "ACK") {
        print "erfolgreich!";
      }
      elsif ($line eq "NACK") {
        print "fehlgeschlagen!";
      }
      else {
        print "nichts geht!";
      }

########## DISCONNECT ############

    print "\nSende ein DISCONNECT zum Server...\n";
    print $socket "DISCONNECT\n";
    $line = getlinefromsocket ($socket);
      if ($line eq "ACK") {
        print "erfolgreich!";
      }
      elsif ($line eq "NACK") {
        print "fehlgeschlagen!";
      }
      else {
        print "nichts geht!";
      }

########## ENDSESSION ############

    print "\nSende ein END SESSION zum Server...\n";
    print $socket "END SESSION\n";
    $line = getlinefromsocket ($socket);
      if ($line eq "ACK") {
        print "erfolgreich!";
      }
      elsif ($line eq "NACK") {
        print "fehlgeschlagen!";
      }
      else {
        print "nichts geht!";
      }

  }
  elsif ($line eq "NACK") {
    print "fehlgeschlagen!";
  }
  else {
    print "Keine Verbindung!";
  }
print "\n";
$socket->close();

########### UNTERPROGRAMM ###########

sub getlinefromsocket {
  my $buffer;
  my $char;
  while ( $socket->recv( $char, 1 ) ) {
    last if ( $char eq "\0" );
    $buffer .= $char;
  }
  return $buffer;
}

neu:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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 $i;
my @ping = ("PING1","PING2","PING3")
my @list = ("CONNECT","$ping[0]","$ping[1]","$ping[2]","DISCONNECT","END SESSION");
my $letzter = $#list;
print "\n";

########## CREATE CLIENT ###########

print "Sende ein Client Create zum Server...\n";
print $socket "CLIENT CREATE\n";
my $line = getlinefromsocket ($socket);
  if ($line eq "ACK") {
    print "erfolgreich!";

######### Befehle ############

while ($i <= $letzter) {
  print "\nSende ein $list[$i]\n";
  print $socket "$list[$i]\n";
  $line = getlinefromsocket ($socket);
      if ($line eq "ACK") {
        print "erfolgreich!";
      }
     elsif ($line eq "NACK") {
        print "fehlgeschlagen!";
      }
      else {
        print "nichts geht!";
      }
  $i = $i + 1;
}

  }
  elsif ($line eq "NACK") {
    print "fehlgeschlagen!";
  }
  else {
    print "Keine Verbindung!";
  }
print "\n";
$socket->close();

########## UNTERPROGRAMM ###########

sub getlinefromsocket {
  my $buffer;
  my $char;
  while ( $socket->recv( $char, 1 ) ) {
    last if ( $char eq "\0" );
    $buffer .= $char;
  }
  return $buffer;
}
lichtkind
 2007-11-28 13:06
#103223 #103223
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
Was ich ändern würde ist auch formatierung weil dadurch nicht lesbarkein leided, im gegenteil. Ansonst findest hier einige kleinigkeiten die ich kürzer löste :)
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
35
36
37
38
39
40
41
use IO::Socket;
use strict;

my @ping = qw(PING1 PING2 PING3);
my @list = ("CONNECT", @ping,"DISCONNECT","END SESSION");

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

########## CREATE CLIENT ###########
print "\nSende ein Client Create zum Server...\n";
print $socket "CLIENT CREATE\n";
my $line = getlinefromsocket ($socket);
if ($line eq "ACK") {
        print "erfolgreich!";
######### Befehle ############
        for my $befehl (@list) {
                print "\nSende ein $befehl\n";
                print $socket "$befehl\n";
                $line = getlinefromsocket ($socket);
                if    ($line eq "ACK")  { print "erfolgreich!" }
                elsif ($line eq "NACK") { print "fehlgeschlagen!" }
                else                    { print "nichts geht!"  }
        }
} 
elsif ($line eq "NACK") { print "fehlgeschlagen!"  }
else                    { print "Keine Verbindung!"}
print "\n";
$socket->close();

########## UNTERPROGRAMM ###########
sub getlinefromsocket {
  my $buffer;
  my $char;
  while ( $socket->recv( $char, 1 ) ) {
        last if $char eq "\0";
        $buffer .= $char;
  }
  return $buffer;
}
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Taulmarill
 2007-11-28 13:12
#103224 #103224
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
In Zeile 4 fehlt das Semikolon am Ende der Zeile.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
bloonix
 2007-11-28 13:20
#103225 #103225
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Code: (dl )
1
2
3
else                    { print "nichts geht!"  }
# würde ich durch folgendes ersetzen
else { die "nichts geht!" }

Anscheinend gibt es ein Kommunikationsproblem
zwischen Client und Server. Vielleicht ist es auch
unkritisch an dieser Stelle.
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
lichtkind
 2007-11-28 13:43
#103227 #103227
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
danke taulmarill habs geändert
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
grey1987
 2007-11-28 14:20
#103228 #103228
User since
2007-11-21
83 Artikel
BenutzerIn
[default_avatar]
danke an alle.
Habt mir mal wieder echt geholfen.
Lob an dieses Forum.
<< >> 10 Einträge, 1 Seite



View all threads created 2007-11-28 11:28.