in reply to Two Regex Searches Simultaneously (on One Line)

@a puts $s1 =~ /(\d{2})/g in list context so all matches will be found and used to populate @a. You probably want something like:

#!/usr/bin/perl use warnings; use strict; my $s1 = "45 20 00 00 00 03 00"; my $s2 = "40 20 00 00 00 00 00"; my @a1 = $s1 =~ /(\d{2})/g; my @a2 = $s2 =~ /(\d{2})/g; die "Mismatched lists" if @a1 != @a2; print "found $a1[$_] and $a2[$_]\n" for 0 .. $#a1;

Prints:

found 45 and 40 found 20 and 20 found 00 and 00 found 00 and 00 found 00 and 00 found 03 and 00 found 00 and 00
True laziness is hard work