[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>


Reply via email to