The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

use warnings;
use strict;
use diagnostics;
use Data::Dumper;

use Verilog::Readmem qw(parse_readmem);

# Read memory file into Array-Of-Arrays data structure:
my $mem_ref = parse_readmem({filename => 'ex1.hex'});

my $num_blocks = scalar @{$mem_ref};
print "num_blocks = $num_blocks\n";

# It is typical to have only one data block.
# Sum up all data values.
if ($num_blocks == 1) {
    my ($addr, @data) = @{ $mem_ref->[0] };
    my $sum = 0;
    for (@data) { $sum += $_ }
    print "addr = $addr, data sum = $sum\n";
}

print Dumper($mem_ref);