#! /usr/bin/perl use strict; use warnings; use 5.020; # data to "send" my @data = qw( 45 53 43 2F 56 50 2E 6E 65 74 10 03 00 00 00 00 50 57 52 3f 0D ); my $testfile = "/tmp/test.%d.dat"; sub write_test { my ( $num, @data ) = @_; my $file = sprintf $testfile, $num; open my $wh, ">", $file or die "open($file,w) failed: $!\n"; print $wh @data; close $wh or die "close($file) failed: $!\n"; } # see perldoc -f pack write_test( 1, map { hex } @data ); # print decimal value as text write_test( 2, pack( 'C*', map { hex } @data ) ); # print unsigned char (octet) value write_test( 3, pack( 'n*', map { hex } @data ) ); # print unsigned short (16-bit) in network (big-endian) order