local $/ = '';
####
do { STATEMENTS } if CONDITION;
####
if (CONDITION) {
STATEMENTS
}
####
#!/usr/bin/env perl
use strict;
use warnings;
{
local $/ = '';
my $wanted = "Receive: \n";
my $re = qr{(\[\d\d\]|.)};
while () {
chomp;
next unless substr($_, 0, length $wanted, '') eq $wanted;
#print "|$_|\n"; # For demo only - see current $_ value
my @hex;
while (/$re/g) {
push @hex, length $1 == 1
? sprintf '%02X', ord $1
: substr($1, 1, 2);
}
print "@hex\n";
}
}
__DATA__
Message:
11 started at: 2018-06-29 16:20:07
Transmit:
ATV1[0D]
Transmit:
[01]10179311000=[03]
Receive:
[01]20179321157>[02]00
00
00[03][00]
Transmit:
[01]10179312000>[03]
Receive:
[01]20179331157?[02]00
00
00[03][00]
Message:
amount of bytes collected ok, data accepted
Message:
11 ended at: 2018-06-29 16:20:46
####
01 32 30 31 37 39 33 32 31 31 35 37 3E 02 30 30 30 30 30 30 03 00
01 32 30 31 37 39 33 33 31 31 35 37 3F 02 30 30 30 30 30 30 03 00
####
|[01]20179321157>[02]00
00
00[03][00]|
01 32 30 31 37 39 33 32 31 31 35 37 3E 02 30 30 30 30 30 30 03 00
|[01]20179331157?[02]00
00
00[03][00]|
01 32 30 31 37 39 33 33 31 31 35 37 3F 02 30 30 30 30 30 30 03 00