[EMAIL PROTECTED] am Dienstag, 10. Januar 2006 14.08: > I'm new to Perl and am trying to set a variable length byte array that is > passed to a socket as a string for output. I have the following which > works, but the commented out code doesn't. What am I doing wrong? Thanks.
Don't forget to put use warnings; use strict; > use IO::Socket; > use Time::HiRes qw(usleep ualarm gettimeofday tv_interval); > my $sock = new IO::Socket::INET( PeerAddr => '10.10.2.141', PeerPort => > '50000', Proto => 'udp' ); > die "no socket\n" unless $sock; > $totalNumPkts = 1; > $pktSize = 512; > $dataVal = 'U'; $dataVal is never used. If you want a string consisting of 1's, you can't use the + operator. In perl, strings are concatanated with the . operator, see perldoc perlop In your case, there is even a simpler way to produce a string of char $c of lenght $x: > $iPkt = "1"; > for ( $i = 1; $i < $pktSize; $i++ ) > { $iPkt += "1"; } $iPkt = '1' x $pktSize; > $startTime = Time::HiRes::time; > for ( $i = 1; $i <= $totalNumPkts; $i++ ) or: for (1..$totalNumPkts) since you don't use $i in the loop. > { > print "sending msg .."; > $sock->print( "Hello\n" ); > #$sock->print( $iPkt ); > } > $endTime = Time::HiRes::time; > $totalTime = $endTime - $startTime; > printf( " st %f end %f total time=%f time/pkt=%f\n", $startTime, $endTime, > $totalTime, $totalTime / > $totalNumPkts ); > printf("done\n"); > close( $sock ); -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>